使用gdb调试通过ctypes加载的库

3 投票
1 回答
3600 浏览
提问于 2025-04-17 21:22

我在Python中加载了一个C语言的库,叫做X.so,这个库是我用一些特定的编译选项编译出来的。

GDBFLAGS = -gdwarf-2 -g3 -O0 -ggdb

然后我通过ctypes这个工具从Python中调用了它的一些非静态函数。

我想调试这个C库X.so。有些函数在运行时会偶尔崩溃,不是每次都崩溃,我想用gdb来监控它的执行情况。

我使用的是linux-gnu系统。请问我该如何调试ctypes呢?

1 个回答

6

使用“gdb python”来调试你的程序,然后像往常一样运行它。当程序崩溃时,照常进行调试。

顺便说一下,我建议你只使用“-g3”。不要使用“-gdwarf-2”,因为现在这样做是不对的——DWARF 2其实已经很老了,现在的默认设置是更新的。

撰写回答