C语言 如何在gdb中调试fork()之后的子进程?

wqsoz72f  于 2023-06-05  发布在  其他
关注(0)|答案(1)|浏览(169)

调用fork后,当前进程将调用exit(0)
但孩子会继续。

switch(fork())
{
  case -1:
    exit(1);
  case 0:
    // child process continues
    break;
  default:
    // the current process exits
    exit(0);
}

在这种情况下,如何继续调试子进程?

lsmepo6l

lsmepo6l1#

看看this。用途:

set follow-fork-mode <mode>

将调试器响应设置为fork或vfork的程序调用。调用fork或vfork创建一个新进程。<mode>参数可以是:
parent:在fork之后调试原始进程。子进程不受阻碍地运行。这是默认值。
child:新进程在fork后被调试。父进程不受阻碍地运行。

相关问题