【发布时间】:2015-02-20 09:59:52
【问题描述】:
这是我在 stackoverflow 上的第一篇文章,如有任何错误,我们深表歉意 :)。我正在尝试按照多个网站中提供的信息使用 Eclipse/CDT 调试 Linux 内核。但是,每次我尝试调试内核时,我都会收到“No source available 0x.....”消息。(请参阅随附的屏幕截图)。
我使用 qemu 虚拟机“qemu -s -S -kernel bzImage ...”运行 linux 内核
我尝试从 Eclipse/CDT 运行调试。为此,我配置了“C/C++ 附加到应用程序”调试。该应用程序是 vmlinux 文件。 gdbserver 类型的远程配置配置为 localhost:1234。
虽然我无法使用 Eclipse/CDT 进行调试,但我可以使用 gdb CLI 调试内核:
# gdb vmlinux
> remote target localhost:1234
> cont
版本信息:
- Linux Mint 17 KDE
- Eclipse 4.4.1
- CDT 8.5.0
- qemu 2.0.0+dfsg-2ubuntu1.9
- gcc 4.8.2-1ubuntu6
- gdb 7.7.1-0ubuntu5~14.04.2
【问题讨论】:
-
在构建linux内核镜像时检查是否启用了
CONFIG_KGDB -
是的,它已启用,根据我的 .config -> CONFIG_KGDB=y
-
源文件实际上必须可用,GDB 将在其中看到它们,并且许多目标文件在编译时需要可用并使用 -gdb3 参数编译(在 gcc 上)
-
可用的内核源代码在 kernel/* 和 kernel/build/* 下的目标文件;而 kernel/* 是 Eclipse/CDT 项目的主文件夹。在调试内核的“Debug configurations”中,有一个“Source”选项卡,已经包含了所有的kernel/*文件。
标签: c eclipse debugging linux-kernel eclipse-cdt