【问题标题】:Display HLL C when debugging Linux kernel source with TRACE32使用 TRACE32 调试 Linux 内核源时显示 HLL C
【发布时间】:2018-11-11 08:13:13
【问题描述】:

我正在使用 Linux 内核 LTS4.4(arm32、cortexa7)进行调试。

我已经成功构建了内核映像以及 vmlinux。

我正在使用 Debugger Lauterbach 和 Trace32 工具。 并使用以下命令加载 vmlinuxkernel 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,我当然已经等待进度完成了。比如我只是随便拍的。

标签: jtag trace32


【解决方案1】:

加载内核符号:

第 1 步:

  • vmlinux

build/tmp/work/.../linux-kernel-standard-build/arch/arm/boot/vmlinux

  • 内核源代码

build/tmp/work/.../linux-kernel-standard-build/source

第 2 步:

Data.LOAD.Elf /home/user/build/tmp/work/.../linux-kernel-standard-build/arch/arm/boot/vmlinux /NoCODE /STRIPPART "arch" /SOURCEPATH /home/user/build/tmp/work/.../linux-kernel-standard-build/source

结果:

【讨论】:

    猜你喜欢
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2017-04-08
    • 2011-05-28
    相关资源
    最近更新 更多