Addr2line
Jump to navigation
Jump to search
addr2line shows file names and line numbers for a specified program addresses.
Example
- Have a file main.cpp:
#include <iostream> int main() { std::cout << "hello world" << std::endl; }
- build it:
g++ main.cpp
- show it disassembled:
objdump -M intel -d a.out [...] 00000000004007c0 <_init>: 4007c0: 48 83 ec 08 sub rsp,0x8 4007c4: e8 47 01 00 00 call 400910 <call_gmon_start> 4007c9: e8 d2 01 00 00 call 4009a0 <frame_dummy> [...]
- Now if you ask yourself from which library the call at 0x4007c0 comes, call:
# addr2line -e a.out 4007c0 /usr/src/packages/BUILD/glibc-2.9/cc-nptl/csu/crti.S:25