如何调试python - c ++程序

时间:2015-04-20 13:49:46

标签: python c++ debugging

我有一个非常复杂的分布式编程框架,其中有:

  1. 一个Controller,BC,用Python编写的twisted插件,在某台机器上运行;
  2. N 守护进程,BM,用Python编写,但以下面的方式将C ++核心包装为共享库:
  3. import imp handle = imp.load_dynamic('mylib', '../libmy.so')

    然后每个BM通过BC互动与jsonrpc对话,但我们并不关心这一点。

    我要做的是调试,可能是在步骤 / 步骤 / 步骤调试时尚但不限于BM进程,在前端显示为单个终端中的同类字符流。

    我强烈关注C ++部分,考虑到Python代码几乎最终要发布并且运行良好。

    由于这种语言混合,我对可能有用的工具类型感到有些困惑。

1 个答案:

答案 0 :(得分:3)

您可以在通过Python加载的任何C / C ++扩展上使用gdb。这样做的方法是:

(gdb) target exec python
(gdb) run
 >>> import your_extension as ye
 >>> ye.do_something ()
 >>> # do your python here
 >>> # or just run your python script from here
(gdb) do debugging stuff

您还可以通过gdb添加断点/进行完整的C / C ++调试。来自boost::python docs

的提示