Я пытаюсь отлаживать модуль расширения для 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
Я вижу. py_node_make() была небольшой статической функцией и главной целью для inlineing. Установка точки останова на нее все еще работала, но имя аргумента ** node ** теряется. – scottt