1 使用backtrace
http://www.gnu.org/software/libc/manual/html_node/Backtraces.html
显示出当前call stack 的backtrace: 每一行为一个frame对应的binary和在binary中的地址
Obtained 7 stack frames. /home/foo/bench_cache() [0x4050f5] /home/foo/bench_cache() [0x405f4e] /home/foo/bench_cache() [0x407d8d] /home/foo/bench_cache() [0x40283a] /home/foo/bench_cache() [0x402e13] /lib/libc.so.6(__libc_start_main+0xfe) [0x7fad2481dd8e] /home/foo/bench_cache() [0x401eb9]2 使用addrline
addr2line将binary的相对offset地址转化为对应的文件以及行数
$ addr2line -e bench_cache -f 0x4050f5 print_backtrace /home/foo/bench_util.h:28参数:
- -e binary, 指定对应的binary
- -f, 显示对应的function名称