在Linux中,我试图调试从Python代码加载的共享库的C ++代码。使用ctypes
包完成加载。在Eclipse中,我在Python和C ++代码中都设置了断点,但Eclipse只是跳过了C ++代码中的断点(Python代码中的断点工作正常)。
我尝试在Eclipse中使用attach to application
(在Debug Configurations下)并选择Python进程,但它没有改变任何东西。在attach to application
对话框中,我选择共享库作为项目,然后选择/usr/bin/python2.6
作为C/C++ application
。这是正确的方法吗?
我在运行python代码之前尝试了这一点,并在捕获了Python代码中的断点之后,就在调用共享库函数的行之前。
修改
与此同时,我正在使用一种解决方法,通过附加到python进程来调用python代码并使用gdb命令行会话进行调试。但我想听听Eclipse内部的解决方案。
答案 0 :(得分:1)
我已经能够成功调试Eclipse中由python加载的c ++共享库。
先决条件: eclipse工作区中的两个eclipse项目:一个是C ++项目,从中生成c ++共享库,另一个是python项目(PyDev),它加载生成的c ++共享库。
步骤如下:
我使用Eclipse Mars版本测试了上述过程。
希望它有所帮助。