我有一个非常复杂的分布式编程框架,其中有:
BC
,用Python编写的twisted
插件,在某台机器上运行; BM
,用Python编写,但以下面的方式将C ++核心包装为共享库: import imp
handle = imp.load_dynamic('mylib', '../libmy.so')
然后每个BM
通过BC
互动与jsonrpc
对话,但我们并不关心这一点。
我要做的是调试,可能是在步骤 / 步骤 / 步骤调试时尚但不限于BM
进程,在前端显示为单个终端中的同类字符流。
我强烈关注C ++部分,考虑到Python代码几乎最终要发布并且运行良好。
由于这种语言混合,我对可能有用的工具类型感到有些困惑。
答案 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
的提示