如何在gdb中的fork()之后调试子进程?
调用fork后,当前进程将调用exit(0)
。
但孩子会继续。
switch(fork()) { case -1: exit(1); case 0: //child process,continue break; default: //the current process,exit exit(0); }
在这种情况下,如何继续调试子进程?
看看这个 。 使用:
set follow-fork-mode
将调试器响应设置为fork或vfork的程序调用。 对fork或vfork的调用会创建一个新进程。
参数可以是:
parent
:原始进程在fork之后调试。 子进程运行畅通无阻。 这是默认值。
child
:在fork之后调试新进程。 父进程运行不受阻碍。