我有一个已经在运行的进程,我想用 GDB 调试它。我一直在使用
gdb --pid $PID
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,该过程会暂停。我想附加到进程而不暂停它,并在它仍在运行时在其内存中查看。这可能吗?或者,有没有办法“分叉”该进程,以便我可以查看其内存,而无需停止/暂停该进程?
gdb 中没有办法在没有某种暂停的情况下附加。
Linux 内核通过 via 对此提供了一些支持PTRACE_SEIZE,但 gdb 尚未使用此功能。bugzilla 中有一个bug,您可以跟踪, “Bug 15250 - 使用和”PTRACE_SEIZEPTRACE_INTERRUPT
同时你可以尝试将 gdb 设置为“观察者模式”。然后您可以附加并使用continue &在后台继续该过程。您可能需要设置各种设置,例如target-async,具体取决于 gdb 版本。
我不完全确定这是否有效。值得一试。请注意,有一个窗口,程序将在其中暂停。现在这是不可避免的。
| 归档时间: |
|
| 查看次数: |
1742 次 |
| 最近记录: |