我有一个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.pypython_d setup.py build
还应该产生扩展模块的调试版本。我已经通过在Eclipse中打开扩展作为应用程序验证了导出符号,我可以看到与Python共享对象链接的源代码。
现在,如果我在Eclipse中使用我的代码文件夹创建另一个项目,并在源中添加一个用于创建扩展的断点,它就不会在断点处停止。我完全有可能在这里缺少一些比较重要的东西,但对于我的生活,我无法让它发挥作用。问题的关键是:
如何让Eclipse在Python扩展模块的断点处停止?
答案 0 :(得分:1)
您使用的是哪种编译器,MSVC或GCC?对于MSVC,您可以先启动python,然后附加python_d.exe(windbg或visual studio),然后就可以加载模块,设置断点,可以验证模块的符号是否在debug->模块窗口中加载(MSVC)。