内核地址上的addr2line找不到源代码行

时间:2018-05-08 21:32:49

标签: linux linux-kernel gdb addr2line

我正在构建一个启用了调试符号的自定义Linux内核(4.15.0 x86_64)。我发现addr2line无法指向源代码行。

  

addr2line -e vmlinux 0xffffffff9be625f0

gdb还返回"没有可用于地址的行号信息"使用以下命令

  

$ gdb ../linux/vmlinux / proc / kcore

     

...从../ linux / vmlinux中读取符号......完成。

     

$ info line * 0xffffffff9be625f0

如何从地址获取行号?这是.config文件。

1 个答案:

答案 0 :(得分:2)

首先 - 尝试从/ proc / kallsyms找出这个地址属于哪个程序。然后从此proc的开头计算此地址的偏移量。然后:

objdump -D -S -l ./vmlinux | less

找到您的程序名称,然后移至您的偏移量。 当然你的内核vmlinux应该用调试符号编译。