我想将gdb附加到一个我无法轻松控制进程启动的进程,因为它是从inetd运行的,并且进程完成得太快而无法连接到它它开始了。
我想要做的是在我想要开始调试的特定点插入一些代码。该代码理想情况下等待调试器附加然后继续。我已经尝试过睡眠,但选择延迟时间足以让我有时间抓住它但是足够短以至于在gdb连接后等待它过去的麻烦就足够了。
为此目的插入或调用代码是否有更好的选择?
答案 0 :(得分:5)
我想做的是在我想要开始调试的特定点插入一些代码。
我通常这样做:
volatile int done = 0;
while (!done) sleep(1);
附加GDB(您将在sleep
内)。执行finish
,然后set var done = 1
,享受其余的调试会话; - )