如何使用addr2line? 我有一个程序,它提供崩溃前访问过的最后10个地址的回溯。但如果我将这些地址用于addr2line,如
addr2line -e test [address]
它只是给了我
??:0
是否有一种特殊的方法来编译使用addr2line,就像我们使用ggdb来使用gdb一样?
答案 0 :(得分:5)
您需要将一些调试信息编译到您的可执行文件中。 e.g。
$ gcc t.c # debug information not requested
$ gdb ./a.out
...
(gdb) break main
Breakpoint 1 at 0x400588
(gdb) q
$ addr2line -e a.out 0x400588
??:0 # no information returned
$ gcc -g t.c # default debug information requested with -g
$ addr2line -e a.out 0x400588
t.c:4 # line information returnedd
$