本文介绍了如何在命令行中使用addr2line的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

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

  addr2line -e test [address] 



它只是给我

  0 

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

解决方案

您需要将一些调试信息编译到可执行文件中。例如

  $ gcc tc#未请求的调试信息
$ gdb ./a.out
。 。
(gdb)break main
断点1在0x400588
(gdb)q
$ addr2line -e a.out 0x400588
??:0#没有返回信息

$ gcc -g tc#请求的默认调试信息-g
$ addr2line -e a.out 0x400588
tc:4#line information returnedd
$


how to use addr2line?i have a program that gives the backtrace of last 10 addresses that it visited before crash. but if i use these address to addr2line like

addr2line -e test [address]

it just gives me

??:0

is there a special way to compile to use addr2line like we use ggdb to use gdb?

解决方案

You need to have some debugging information compiled in to your executable. 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
$

这篇关于如何在命令行中使用addr2line的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-07 02:05