调试Python的swig扩展
有没有其他方法可以调试swig扩展,而不是使用
gdb python stuff.py
呢?
我已经把一个旧的库libkdtree++封装起来,并且遵循了所有与swig相关的内存管理要点(比如借用引用和拥有引用等等)。但是,我还是不确定我的绑定是否会导致内存泄漏。如果能逐步调试每个公开的函数就太好了:从Python开始,然后通过C语言的绑定进入C空间,再返回来。
现在已经有这样的可能性吗?
2 个回答
3
gdb 7.0 版本支持用 Python 编写脚本。这可能会在你这个特定的情况下对你有所帮助。
1
好吧,调试的时候,你可以用调试工具 ;-).
在调试时,配置Python加上'--with-pydebug'选项并重新编译可能是个好主意。这样可以进行更多的检查。
如果你想找内存泄漏,有个简单的方法:
把你的代码放在一个循环里反复运行,然后观察一下Python的内存使用情况。