Как мне отладить дочерний процесс после fork () в gdb? - PullRequest
24 голосов
/ 01 июня 2011

После вызова fork текущий процесс вызовет exit(0).

Но ребенок продолжит.

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

Как я могу продолжить отладку дочернего процесса в этом случае?

1 Ответ

39 голосов
/ 01 июня 2011

Посмотрите на это .Использование:

set follow-fork-mode <mode>

Установить ответ отладчика на программный вызов fork или vfork.Вызов fork или vfork создает новый процесс.Аргумент <mode> может быть:

parent: исходный процесс отлаживается после разветвления.Дочерний процесс выполняется беспрепятственно.Это по умолчанию.

child: новый процесс отлаживается после разветвления.Родительский процесс выполняется беспрепятственно.

...