有没有办法告诉进程等待gdb附加到它?

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

我有一个类似于有什么方法可以告诉GDB等待进程启动并附加到它吗?,但它是相反的——我想让gdb附加到一个已经运行的进程进程,但让进程暂停,直到 gdb 完成附加。

更具体地说,进程本身会分叉,子进程会执行

gdb $program -p $parentpid -ex 'c'
或类似的东西。父级将等待 gdb 连接后再继续。我想避免在继续之前简单地等待任意时间,因为我想避免对 gdb 启动需要多长时间进行任何假设。

我不确定这是否可行,但如果可行的话将会非常有用。

gdb
1个回答
0
投票

父进程将等待 gdb 连接后再继续。

假设您使用的是 Linux,父级可以重复读取

/proc/self/status
,等待
TracerPid
变为非零。

但是,这有点毫无意义:当 GDB 附加您的进程时,GDB 将停止它(即,在 GDB 附加

 并继续 
您附加的进程之前,该进程永远不会真正看到 TracerPid != 0

所以这个答案中的解决方案也同样有效(尽管它确实需要GDB做的不仅仅是

continue
你的过程)。

© www.soinside.com 2019 - 2024. All rights reserved.