特定の関数が実際に呼び出される Python ソース コードとその名前を取得する方法をトレースしようとしています。
abstract.c で:
PyObject *
PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw)
{
ternaryfunc call;
if((call = func->ob_type->tp_name) != NULL){
PyObject *result;
...
result = (*call)(func, arg, kw); //How do I find out what is being called here?
...
}
...
}
私のコメントのある行で、呼び出されているものの名前を取得するにはどうすればよいですか? でオブジェクト型を取得できます(char *)func->ob_type->tp_nameが、呼び出されている関数の名前を知りたいです。(引数もいいでしょう)
注: Python 2.6 を使用しています。