【发布时间】:2014-02-14 06:54:52
【问题描述】:
正如我的标题所说,我在调试作为多进程程序的源代码时遇到了麻烦。 这是如下: 1.程序写成守护进程,所以父/主进程是守护进程。 2. 它分叉了许多子进程,大约 5 到 7 或 8 个进程。
我使用 eclipse 来开发我的代码,我想从 eclipse 中调试我的程序。 据我尝试,调试器不知道子进程的断点。
因此我想知道,是否有任何可用的选项可以调试我的程序,包括子进程? eclipse中是否有任何设置可以附加子pid,以便调试器切换到该子进程?
例如,假设子 pid 为 4523、4562、5462。那么在调试期间,我可以将调试器附加到 5462 吗?
提前致谢。
【问题讨论】:
-
有点相关。几年前,在为 Domino 服务器编写插件时,我完全为类似情况找到了解决方案。最终,我最终临时将分叉代码更改为双分叉并执行配置为启动 gdb 的 xterm,附加到我在初始分叉上啜饮的 id 的子进程。这很可怕,但它非常很好地发现了隐藏在插件深处的故障。我想到目前为止,eclipse 应该已经为 gdb 配置了启用调试子进程的配置(那是 12 年前)。
-
@WhozCraig 感谢您提供的信息,是的,eclipse Kepler 现在支持调试子进程,但是目前我尝试了一个子进程是可能的。而且因为我的程序是守护进程,所以我认为这个也是 Eclipse 调试的限制,但不是 100% 确定。
标签: c eclipse multithreading debugging gdb