如何调试python-c++;程序

如何调试python-c++;程序,python,c++,debugging,Python,C++,Debugging,我得到了一个相当复杂的分布式编程框架,其中包括: 一个控制器,BC,作为一个twisted插件用Python编写,在某台机器上运行 >守护进程,代码为> BM< /COD>,用Python编写,但将C++核心封装为共享库,如下: 导入imp handle=imp.load_dynamic('mylib','../libmy.so') 然后,每个BM通过jsonrpc交互与BC对话,但我们不关心这一点 我要做的是调试,可能是一步一步地调试,但不限于BM进程,它在前端显示为单个终端中的同质字符流

我得到了一个相当复杂的分布式编程框架,其中包括:

  • 一个控制器,
    BC
    ,作为一个
    twisted
    插件用Python编写,在某台机器上运行 >守护进程,代码为> BM< /COD>,用Python编写,但将C++核心封装为共享库,如下:
  • 导入imp
    handle=imp.load_dynamic('mylib','../libmy.so')

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

    我要做的是调试,可能是一步一步地调试,但不限于
    BM
    进程,它在前端显示为单个终端中的同质字符流

    我对C++部分非常强烈,考虑到Python代码几乎最终发布和工作良好。


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

    您可以在通过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++调试。来自

    的提示不,他们不能。守护进程实际上是Python代码,它调用了上面提到的C++库中的几个重要API,但是,我错过了这个细微差别;事实上,我可以构建一个C++ PythExtube,表示Python守护进程所做的工作;但是WakkaDojo的回答将问题归结为我们所讨论的:-)