我有一个已经在运行的进程,我想用 GDB 调试它。我一直在使用
gdb --pid $PID
但是,当我这样做时,该过程会暂停。我想附加到进程而不暂停它,并在它仍在运行时在其内存中查看。这可能吗?或者,有没有办法“分叉”该进程,以便我可以查看其内存,而无需停止/暂停该进程?
gdb 中没有办法在没有某种暂停的情况下附加。
Linux 内核为此提供了一些支持PTRACE_SEIZE
,但是 gdb 还没有使用这个。有一个bugzilla 中的错误您可以跟踪,“错误 15250 - 使用PTRACE_SEIZE and PTRACE_INTERRUPT" https://sourceware.org/bugzilla/show_bug.cgi?id=15250
同时你可以尝试将 gdb 设置为“观察者模式”。然后你就可以附加并使用continue &
在后台继续该过程。您可能需要设置各种设置,例如target-async
,取决于 gdb 版本。
我不完全确定这是否有效。值得一试。请注意,有一个窗口,程序将在其中暂停。现在这是不可避免的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)