gpt4 book ai didi

c++ - 在 Eclipse 中调试混合的 Python/C++ 代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:44:05 25 4
gpt4 key购买 nike

我有一个带有 SWIG 生成的 Python 前端的 C++ 项目,我使用 CMake 构建了该项目。我现在正试图找到一种方便的方法来调试我的混合 Python/C++ 代码。我能够使用 gdb 获得错误的堆栈跟踪,但我想要一些更奇特的功能,例如单步执行代码和设置断点的能力,例如使用 Eclipse。

使用 CMake 的 Eclipse 生成器,我能够生成一个项目,我能够将其导入到 Eclipse 中。这工作正常,我也能够单步执行纯 C++ 可执行文件。但随后问题开始了。

首先,我无法从 Eclipse 内部构建 Python 前端。在命令行中,我只是执行“make python”,但 Eclipse 项目中没有目标“python”。

其次,一旦我编译了 Python 前端,我就不知道如何单步执行包含对包装的 C++ 类的调用的 Python 脚本。 Eclipse 具有针对 Python 和 C++ 的调试功能,但它们可以结合使用吗?

最佳答案

some more fancy features such as the ability to step through the code and set breakpoints, for example using Eclipse

这些功能如何“花哨”?您已经可以在用于 Python 的 pdb 或用于 C++ 的 gdb 中执行这些操作。

我建议使用 pdb 运行 python 代码(或使用 pdb.set_trace() 在一个有趣的点中断执行),并在单独的终端中将 gdb 附加到进程。使用 pdb 在 Python 代码中设置断点并单步执行。使用 gdb 在 C++ 代码中设置断点并单步执行。当 pdb 跨过 native 调用时,gdb 将接管。当 gdb continue 允许恢复 Python 执行时,pdb 将接管。

这应该可以让您在 C++ 和 Python 断点之间跳转,而无需通过解释器进行跟踪。


免责声明:我主要认为 IDE 是垃圾过时软件,因此如果 Eclipse 确实 有集成它的好方法,我无论如何都不会知道。

关于c++ - 在 Eclipse 中调试混合的 Python/C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com