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

cpu*_*uer 26 c gdb fork

调用fork后,当前进程将调用exit(0).

但孩子会继续.

switch(fork())
{
  case -1:
    exit(1);
  case 0:
    //child process,continue
    break;
  default:
    //the current process,exit
    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

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

Mih*_*yan 42

看看这个.使用:

set follow-fork-mode <mode>
Run Code Online (Sandbox Code Playgroud)

将调试器响应设置为fork或vfork的程序调用.对fork或vfork的调用会创建一个新进程.该<mode>参数可以是:

parent:原始进程在fork之后调试.子进程运行畅通无阻.这是默认值.

child:新进程在fork之后调试.父进程运行不受阻碍.

  • 有没有办法同时调试父级和子级? (5认同)