我有一个已经运行的进程,我想用GDB调试它。我一直在使用
gdb --pid $PID
然而,当我这样做时,该过程暂停。我希望在没有暂停的情况下附加到该过程,并在它仍在运行时环顾四周。这可能吗?或者,有没有办法去" fork"这个过程让我可以在不停止/暂停过程的情况下查看其内存?
答案 0 :(得分:3)
gdb没有办法在没有某种停顿的情况下附加。
Linux内核通过PTRACE_SEIZE
为此提供了一些支持,但gdb尚未使用它。您可以跟踪bugzilla中的错误。
同时你可以尝试将gdb设置为“观察者模式”。然后,您可以附加并使用continue &
在后台继续该过程。您可能需要设置各种设置,例如target-async
,具体取决于gdb版本。
我不确定这是否有效。值得一试。请注意,有一个窗口可以暂停程序。现在这是不可避免的。