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'.
