我有一个C++应用程序,让我们调用dummy1,我想在Linux(ubuntu 12.04)的cgdb(gdb的curl接口(interface))中调试它。
调试需要与 Controller 进程同步,这是我的来源。
编辑, Controller 通过http连接并与之通信并控制dummy1。我想按自己喜欢的方式在某个功能和步骤中断开dummy1。发生这种情况时,我想通知 Controller 。然后, Controller 应更改其状态,直到收到通知我继续执行dummy1。同时,它不应尝试控制或启动与dummy1的通信。
我的问题是如何检测/通知 Controller 当前是否正在调试我的dummy1进程(中断)?
最佳答案
有几种可能的解决方案:
dummy1
进程的PID),并查看TracerPid
字段。如果非零,则表示正在调试dummy1
,并且 Controller 应避免尝试控制。 注意,这回答“正在调试dummy1”,而不是dummy1当前是否停止。为了允许 Controller 再次控制,您必须将GDB与dummy1分离。
较新版本的GDB支持一次调试多个进程。但是,您可能会发现这很困惑。