假设我在IPython中(例如在new QT console上),并且我从其中调用了我编写的C++库(例如使用SWIG或Boost.Python)。我想在我的C++代码中设置断点,并具有使用IPython与我的C++工作区交互的能力(即当我触发断点时,我的变量),例如绘制我的C++变量等。
换句话说,我想从IPython中调试我的C++代码。这可能吗?我可以使用哪些工具?
假设我在IPython中(例如在new QT console上),并且我从其中调用了我编写的C++库(例如使用SWIG或Boost.Python)。我想在我的C++代码中设置断点,并具有使用IPython与我的C++工作区交互的能力(即当我触发断点时,我的变量),例如绘制我的C++变量等。
换句话说,我想从IPython中调试我的C++代码。这可能吗?我可以使用哪些工具?
$HOME/.gdbinit
中,设置配置来告诉gdb您的源文件在哪里:
directory 绝对路径到源文件
现在启动 gdb python
并在gdb提示符上执行以下操作:
set args /usr/bin/ipython
run
您不能直接执行gdb ipython
,因为ipython是一个脚本。请从此处参考gdb文档。通常情况下,您无法直接使用IPython调试C++代码。不过,您可以使用C++调试器来调试您的C++代码。
实际上,您可以让C++调试器执行您需要用于运行代码的任何进程(这可能是IPython本身),并在您的C++代码中设置断点(如果它在DLL中,则调试器会等待适当的DLL加载)。从那里开始,您正在调试在IPython进程中运行的代码部分。