我试图调试用于Python的扩展模块,我在C.我写使用以下编译它:Python扩展调试
python setup.py build -g install --user
然后我和调试:
gdb python
...
b py_node_make
run test.py
它在py_node_make休息(我所定义的功能之一),但后来我尝试:
(gdb) print node
No symbol "node" in current context.
我试图调试功能是:
static Python_node_t* py_node_make(
node_t* node)
{
Python_node_t* pyNode;
pyNode = PyObject_New(Python_node_t, &t_node);
pyNode->node = node;
pyNode->borrowed = true;
return pyNode;
}
我相信麻烦的是该功能被完全优化了。我知道-g标志被设置,因为其他函数在这里和那里有很多信息,只是不是py_node_make。 – CrazyCasta 2013-03-09 05:41:53
我明白了。 py_node_make()是一个小的静态函数,也是嵌入的主要目标。在其上设置断点仍然有效,但参数名称** node **丢失。 – scottt 2013-03-09 09:24:20