在Eclipse中调试Python扩展
我有一个Python扩展,已经在Windows、OSX和Linux上成功构建并使用。现在我需要调试这个Python扩展。我不太喜欢在命令行中使用gdb,所以我希望能在Eclipse中实现调试。
首先,我尽量按照这个链接中的说明操作:http://www.heikkitoivonen.net/blog/2008/07/21/debugging-python-extension-written-in-c-with-eclipse/,我把Python源代码的文件夹和扩展代码的文件夹都添加到了空项目的源文件夹中。因为在Linux上获取所有需要的调试版本相对简单,所以我选择在Ubuntu上进行调试开发。
当我得到了一个调试版本的Python(我们称之为python_d)后,我用以下命令运行了我的扩展的setup.py:
python_d setup.py build
这也应该能生成扩展模块的调试版本。我已经确认通过在Eclipse中将扩展作为应用程序打开,可以看到符号被导出,并且源代码与Python共享对象链接在一起。
现在,如果我在Eclipse中创建另一个项目,添加我的代码文件夹,并在用于创建扩展的源代码中设置一个断点,它却没有在断点处停止。很可能我在这里遗漏了一些关键的东西,但我实在搞不定。问题的关键是:
如何让Eclipse在Python扩展模块的断点处停止?
1 个回答
1
你在用哪个编译器,MSVC还是GCC?如果你用的是MSVC,你可以先启动Python,然后连接到python_d.exe(可以用windbg或者Visual Studio),接着你就可以加载你的模块,设置断点。这样你就能在调试窗口的模块部分查看你的模块符号是否成功加载了(在MSVC中)。