gdb 不间断地附加到进程

问题描述 投票:0回答:4

每次我使用 gdb 附加到一个进程时,它都会停止目标程序,我需要输入“cont”才能让它停止。有没有办法在不停止进程的情况下附加到进程?如果进程停止一段时间后表现会有所不同,这会让事情变得更容易。

gdb
4个回答
48
投票

我知道对此已经有一个很好的答案,但我不想使用额外的文件。

这是另一个答案:

gdb attach $(pidof process_name) -ex cont

15
投票

你无法让它不停止。但是,您可以立即继续...创建一个简单的批处理脚本,该脚本将附加到特定进程并在附加后立即继续执行:

gdb attach $1 -x <(echo "cont")

./附上PID


3
投票

当你不知道进程的PID时...

gdb attach $(pgrep -f myApp) -ex cont

0
投票

这是最新版本的 GDB 的统一命令,其中包括

debuginfod
支持(另请参阅相关问题)。如果没有这个额外的步骤,它仍然挂起我的远程终端,当我尝试调试窗口管理器问题时很难检测到这一点。在此示例中,
<BINARY-NAME>
是进程二进制名称,而不是 PID。

echo 'set debuginfod enabled on' >> ~/.gdbinit
gdb -iex "set pagination off" -q -ex cont -p $(pidof <BINARY-NAME>)
© www.soinside.com 2019 - 2024. All rights reserved.