Tôi đang cố gắng để gỡ lỗi một module mở rộng cho python mà tôi đã viết trong C. Tôi biên dịch nó bằng cách sử dụng sau đây:Python mở rộng gỡ lỗi
python setup.py build -g install --user
sau đó tôi gỡ lỗi với:
gdb python
...
b py_node_make
run test.py
Nó ngắt tại py_node_make (một trong các hàm tôi đã xác định), nhưng sau đó tôi thử:
(gdb) print node
No symbol "node" in current context.
Hàm tôi đang cố gắng gỡ lỗi là:
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;
}
Tôi tin rằng sự cố là chức năng đã được tối ưu hóa hoàn toàn. Tôi biết cờ -g đã được thiết lập bởi vì các chức năng khác ở đây và ở đó và rất nhiều thông tin, chỉ cần không py_node_make. – CrazyCasta
Tôi hiểu. py_node_make() là một hàm tĩnh nhỏ và một mục tiêu chính cho inline. Đặt điểm ngắt trên nó vẫn hoạt động, nhưng tên đối số ** node ** bị mất. – scottt