【发布时间】:2018-11-11 08:13:13
【问题描述】:
我正在使用 Linux 内核 LTS4.4(arm32、cortexa7)进行调试。
我已经成功构建了内核映像以及 vmlinux。
我正在使用 Debugger Lauterbach 和 Trace32 工具。 并使用以下命令加载 vmlinux 和 kernel source
B:: data.load.Elf /home/compile-kernel/linux-4.4.138/vmlinux /PlusVM /STRIPPART 4 /PATH "/home/src-kernel"
加载进度成功,但是我没有看到任何C代码(HLL),只有asm。
之后,我尝试显示 symbol.list.source .但是,List 表是空的。
你们能支持我吗?谢谢。
【问题讨论】:
-
你确定你已经用调试信息构建了内核吗?
-
是的。为了能够进行 Linux 感知调试,必须在启用调试信息的情况下编译 vmlinux 文件。因此,需要确保在内核配置中启用了CONFIG_DEBUG_INFO。可能在“Kernel hacking -> Compile the kernel with debug info”下找到此选项(在较新的内核版本中,在“Kernel hacking -> Compile-time checks and compiler options -> Compile the kernel with debug info”下)。确保未设置 CONFIG_DEBUG_INFO_REDUCED(减少调试信息)。
-
好吧,如果 sYmbol.List.SOURCE 向您显示一个空窗口,您可能仍然缺少 vmlinux 文件中所需的调试信息。一个合适的 vmlinux 文件应该是原始映像文件的 10 倍左右。在您的屏幕截图中,TRACE32 仍在加载文件(底部有橙色进度条)您等待的时间是否足够长?
-
嗨,Holger,我当然已经等待进度完成了。比如我只是随便拍的。