调试Python的swig扩展

6 投票
2 回答
2699 浏览
提问于 2025-04-15 11:25

有没有其他方法可以调试swig扩展,而不是使用

gdb python stuff.py

呢?

我已经把一个旧的库libkdtree++封装起来,并且遵循了所有与swig相关的内存管理要点(比如借用引用和拥有引用等等)。但是,我还是不确定我的绑定是否会导致内存泄漏。如果能逐步调试每个公开的函数就太好了:从Python开始,然后通过C语言的绑定进入C空间,再返回来。

现在已经有这样的可能性吗?

2 个回答

3

gdb 7.0 版本支持用 Python 编写脚本。这可能会在你这个特定的情况下对你有所帮助。

1

好吧,调试的时候,你可以用调试工具 ;-).

在调试时,配置Python加上'--with-pydebug'选项并重新编译可能是个好主意。这样可以进行更多的检查。

如果你想找内存泄漏,有个简单的方法:

把你的代码放在一个循环里反复运行,然后观察一下Python的内存使用情况。

撰写回答