我有一个C++程序,它使用一个SWIG生成的Python前端,我使用CMASE构建它。我现在正试图找到一种调试混合python/C++代码的简便方法。我可以使用gdb获得错误的堆栈跟踪,但是我希望有一些更奇特的特性,例如能够逐步执行代码和设置断点,例如使用Eclipse。在
使用EclipseGeneratorforCMake,我可以生成一个可以导入Eclipse的项目。这很好,我也能够通过纯C++可执行文件。但问题就开始了。在
首先,我无法从Eclipse内部构建Python前端。在命令行中,我只做了“makepython”,但是Eclipse项目中没有目标“python”。在
第二,一旦我编译了Python前端,我就不知道如何跳过包含对我包裹的C++类的调用的Python脚本。Eclipse既为Python和C++进行了调试,又可以将它们组合起来?在
这些功能如何“花哨”?您可以在PDB中使用Python,或者C++中的GDB。在
我建议使用pdb运行python代码(或者使用
<>这应该让你在C++和Python断点之间跳转,而不需要通过解释器来跟踪。在pdb.set_trace()
在一个有趣的点中断执行),并将gdb附加到一个单独的终端中的进程。使用pdb在Python代码中设置断点并逐步执行。使用GDB在C++代码中设置断点并逐步通过。当pdb跳过本机调用时,gdb将接管。当gdbcontinue
允许Python继续执行时,pdb将接管。在免责声明:我在很大程度上认为ide是垃圾膨胀软件,所以如果Eclipse确实有一个很好的集成方法,我无论如何也不会知道。在
相关问题 更多 >
编程相关推荐