如何调试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编写,在某台机器上运行李>
导入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的回答将问题归结为我们所讨论的:-)