cpuer
cpuer

Reputation: 7783

How do I debug the child process after fork() in gdb?

After calling fork, the current process will call exit(0).

But the child will continue.

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

How can I continue debugging the child process in this case?

Upvotes: 38

Views: 30402

Answers (1)

Mihran Hovsepyan
Mihran Hovsepyan

Reputation: 11088

Look at this. Use:

set follow-fork-mode <mode>

Set the debugger response to a program call of fork or vfork. A call to fork or vfork creates a new process. The <mode> argument can be:

parent: The original process is debugged after a fork. The child process runs unimpeded. This is the default.

child: The new process is debugged after a fork. The parent process runs unimpeded.

Upvotes: 57

Related Questions