25 lines
822 B
Plaintext
25 lines
822 B
Plaintext
|
This script maps runtime addresses to symbol names. It is robust over
|
||
|
Address Space Layout Randomization (ASLR) since it uses runtime addresses with
|
||
|
runtime mapping information (/proc/.../maps).
|
||
|
Like 'pprof --symbols' in gperftools <http://code.google.com/p/gperftools/>.
|
||
|
|
||
|
|
||
|
Step 1: Prepare symbol information.
|
||
|
|
||
|
It is required to collect symbol information before mapping runtime addresses
|
||
|
to symbol names.
|
||
|
|
||
|
./prepare_symbol_info.py /path/to/maps [/another/path/to/symbol_info_dir]
|
||
|
|
||
|
The required 'maps' file is /proc/.../maps of the process at runtime.
|
||
|
|
||
|
|
||
|
Step 2: Find symbols.
|
||
|
|
||
|
./find_runtime_symbols.py /path/to/symbol_info_dir < addresses.txt
|
||
|
|
||
|
'symbol_info_dir' is the result of the Step 1.
|
||
|
The stdin should be a list of hex addresses to map, one per line.
|
||
|
|
||
|
The results will be printed to stdout like 'pprof --symbols'.
|