我試圖調試用於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