我想将gdb附加到一个无法轻易控制该进程启动的进程,因为它是从inetd运行的,并且该进程完成得太快而无法在启动后就可以附加到该进程。
我想做的是在要开始调试的特定点插入一些代码。理想情况下,该代码将等待调试器附加然后继续。我已经尝试过入睡,但是要选择足够长的延迟以使我有时间去捕捉它,但是要足够短以免在挂接到gdb后等待它过去,不要太麻烦。
为此,是否有更好的代码选择来插入或调用?
我想做的是在要开始调试的特定点插入一些代码。
我通常这样做:
volatile int done = 0;
while (!done) sleep(1);
Run Code Online (Sandbox Code Playgroud)
附加GDB(您将在里面sleep
)。待办事项finish
,然后set var done = 1
,享受你的调试会话的其余部分;-)