Sunday 29 September 2013

Where does gdb get function names from?

Where does gdb get function names from?

I'm looking at a live python process using GDB and see the following frames:
...
#5 call_function (oparg=<optimized out>, pp_stack=0x7fffb1b2ffa0) at
Python/ceval.c:4084
#6 PyEval_EvalFrameEx (f=f@entry=0x1a03850, throwflag=throwflag@entry=0)
at Python/ceval.c:2679
...
I'm confused about where does the call_function come from though. It
doesn't seem to be a symbol in either the python executable or the binary:
~ &#5125; objdump -x /usr/lib/libpython3.3m.so.1.0 | grep call_function
000000000005f0e0 l F .text 0000000000000094
call_function_tail
If it's not a known symbol, how does GDB know about it... and what is it
exactly (apart of course that it's a normal function)?

No comments:

Post a Comment