1

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

addr2line -e vmlinux 0xffffffff9be625f0

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

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

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

$ 信息行 *0xffffffff9be625f0

应该怎么做才能从地址中获取行号?这是.config文件。

4

1 回答 1

2

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

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

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

于 2018-05-09T10:55:09.830 回答