暂停进程以允许调试器附加时间

时间:2016-12-08 15:31:56

标签: debugging gdb

我想将gdb附加到一个我无法轻松控制进程启动的进程,因为它是从inetd运行的,并且进程完成得太快而无法连接到它它开始了。

我想要做的是在我想要开始调试的特定点插入一些代码。该代码理想情况下等待调试器附加然后继续。我已经尝试过睡眠,但选择延迟时间足以让我有时间抓住它但是足够短以至于在gdb连接后等待它过去的麻烦就足够了。

为此目的插入或调用代码是否有更好的选择?

1 个答案:

答案 0 :(得分:5)

  

我想做的是在我想要开始调试的特定点插入一些代码。

我通常这样做:

volatile int done = 0;
while (!done) sleep(1);

附加GDB(您将在sleep内)。执行finish,然后set var done = 1,享受其余的调试会话; - )