如何在命令行中使用addr2line

时间:2011-05-16 10:03:35

标签: c++ linux

如何使用addr2line? 我有一个程序,它提供崩溃前访问过的最后10个地址的回溯。但如果我将这些地址用于addr2line,如

addr2line -e test [address]

它只是给了我

??:0

是否有一种特殊的方法来编译使用addr2line,就像我们使用ggdb来使用gdb一样?

1 个答案:

答案 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
$