用IPython调试C/C++代码

Debugging C/C++ code with IPython

本文关键字:C++ 代码 IPython 调试      更新时间:2023-10-16

假设我在IPython(例如在新的QT控制台上),并调用我从中编写的C++库(例如使用SWIG或Boost.Python)。我希望在我的C++代码中设置断点,并能够使用IPython与我的C++工作区(即当我遇到断点时的变量)交互(例如绘制我的C++变量等)。

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

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

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

您不能直接执行gdb ipython,因为ipython是一个脚本。请从此处开始参阅gdb文档。

通常,您将无法使用IPython直接调试C++代码。不过,您可以使用C++调试器来调试C++代码。

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