4

假设我在IPython中(例如在新的 QT 控制台上),并且我调用了一个我用它编写的 C++ 库(例如使用SWIGBoost.Python)。我想在我的 C++ 代码中设置一个断点,并能够使用 IPython 与我的 C++ 工作区(即当我命中断点时的变量)进行交互(例如绘制我的 C++ 变量等)。

换句话说,我想从IPython调试我的 C++ 代码。这是可能吗?我可以为此使用哪些工具?

4

2 回答 2

3

(假设你在 Linux 上)你只需要 gdb。首先设置配置告诉 gdb 您的源文件在哪里,方法是将其添加到$HOME/.gdbinit directory absolute-path-to-source

现在启动gdb python并在 gdb 提示符下执行: set args /usr/bin/ipython run

你不能直接做gdb ipython,因为 ipython 是一个脚本。请从这里开始参考 gdb 文档。

于 2015-12-12T08:43:16.937 回答
0

通常,您无法直接使用 IPython 调试 C++ 代码。但是,您可以做的是使用 C++ 调试器来调试您的 C++ 代码。

本质上,您告诉您的 C++ 调试器执行运行代码所需的任何进程(这可能是 IPython 本身),并在您的 C++ 代码中设置断点(您的调试器将知道等待加载适当的 DLL,如果它在一个DLL中)。从那里,您正在调试在 IPython 进程中运行的代码部分。

于 2012-07-22T05:53:33.793 回答