使用gdb加载ctypes的调试库

ali*_*oar 3 python debugging ctypes gdb

我在python中加载了一个C库X.so,我用这些标志编译.

GDBFLAGS = -gdwarf-2 -g3 -O0 -ggdb
Run Code Online (Sandbox Code Playgroud)

我使用ctypes从python中调用它的一些非静态函数.

我希望调试C库X.so. X.的某些功能有时会崩溃,而不是一直崩溃,我希望使用gdb监视执行.

我用linux-gnu.我该如何调试ctypes?

Tom*_*mey 5

使用"gdb python"并像往常一样运行程序.然后当它崩溃时,正常调试.

顺便说一下,我建议只使用"-g3".不要使用"-gdwarf-2",这现在做错了 - DWARF 2实际上已经很老了,现在默认是更新的.

  • gdb应该用[libpython.py](http://hg.python.org/cpython/file/7ff62415e426/Tools/gdb/libpython.py)设置,比如Debian的[python3.3-dbg]安装(https://packages.debian.org/jessie/python3.3-dbg) 包。它可以很好地打印 Python 对象并安装命令 `py-print`、`py-locals`、`py-list`、`py-bt`、`py-bt-full`、`py-up` 和 `py -下`。 (2认同)