在Eclipse中调试Python扩展

Ian*_*ell 34 c python eclipse eclipse-cdt

我有一个Python扩展,我已成功构建并在Windows,OSX和Linux上使用.我现在需要能够调试这个Python扩展.我不喜欢在命令行中使用gdb,所以我真的希望在Eclipse中使用它.

首先,我尽力遵循http://www.heikkitoivonen.net/blog/2008/07/21/debugging-python-extension-written-in-c-with-eclipse/中的说明,我添加了Python源文件夹以及python扩展代码的文件夹作为源文件夹到空项目.由于在linux上获得所需的所有调试版本相对容易,我开始在Ubuntu中进行调试开发.

一旦我得到了python的调试版本(让我们称之为python_d),我运行了我的扩展的setup.py

python_d setup.py build
Run Code Online (Sandbox Code Playgroud)

这也应该产生扩展模块的调试版本.我已经通过在Eclipse中打开扩展作为应用程序验证了导出符号,我可以看到与Python共享对象链接的源代码.

现在,如果我在Eclipse中使用我的代码文件夹创建另一个项目,并在源中添加一个用于创建扩展的断点,它就不会在断点处停止.我完全有可能在这里错过一些比较挑剔的东西,但对于我的生活,我无法让它发挥作用.问题的关键是:

如何让Eclipse在Python扩展模块的断点处停止?

小智 1

您使用的是 MSVC 还是 GCC 哪个编译器?对于MSVC,您可以先启动python,并附加python_d.exe(windbg或Visual Studio),然后您可以加载您的模块,设置断点,您可以验证您的模块的符号是否已加载到调试->模块窗口( MSVC)。