GDB を使用してライブ python プロセスを見ていると、次のフレームが表示されます。
...
#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
...
私はcall_function
どこから来たのか混乱しています。Python実行可能ファイルまたはバイナリのシンボルではないようです:
~ ᐅ objdump -x /usr/lib/libpython3.3m.so.1.0 | grep call_function
000000000005f0e0 l F .text 0000000000000094 call_function_tail
それが既知のシンボルでない場合、GDB はそれをどのように認識するのでしょうか...そしてそれは正確には何ですか (もちろん、通常の関数であることは別として)?