我正在构建一个启用了调试符号的自定义Linux内核(4.15.0 x86_64)。我发现addr2line无法指向源代码行。
addr2line -e vmlinux 0xffffffff9be625f0
gdb还返回"没有可用于地址的行号信息"使用以下命令
$ gdb ../linux/vmlinux / proc / kcore
...从../ linux / vmlinux中读取符号......完成。
$ info line * 0xffffffff9be625f0
如何从地址获取行号?这是.config文件。
答案 0 :(得分:2)
首先 - 尝试从/ proc / kallsyms找出这个地址属于哪个程序。然后从此proc的开头计算此地址的偏移量。然后:
objdump -D -S -l ./vmlinux | less
找到您的程序名称,然后移至您的偏移量。 当然你的内核vmlinux应该用调试符号编译。