我有一个非常复杂的分布式编程框架,其中有:
>一个控制器,BC,用Python编写的扭曲插件,在某台机器上运行;
> N Daemons,BM,用Python编写,但将C核包装为共享库,方式如下:
进口进出口
handle = imp.load_dynamic(‘mylib’,’.. / libmy.so’)
然后每个BM通过jsonrpc交互与BC进行对话,但我们并不关心这一点.
我要做的是调试,可能是步进/步进/步调试方式,但不限于BM进程,它在前端显示为单个终端中的同类字符流.
考虑到Python代码几乎最终发布并且运行良好,我对C部分非常感兴趣.
由于这种语言混合,我对哪种类型的工具可能有用感到困惑.
最佳答案 您可以在通过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开始