Я пытаюсь отладить некоторый механизм fork() с eclipse cdt (Juno). Я написал программу в C.
if( -1 == (pid = fork()) ) /* error */
goto cleanup;
else if ( 0 == pid ) /* child */
{
execlp("gcc", "gcc", cFilePath, "-o" , GCC_OUTPUT_FILE_NAME, NULL);
goto cleanup; /* Arrives here only on error! */
}
else if (pid > 0) /* parent - checks: correct pid returns, returns normally, with exit status = 0*/
{
returnedpid = wait(exitStatus);
if( pid != returnedpid || exitStatus == NULL || !WIFEXITED(*exitStatus) || !WEXITSTATUS(*exitStatus) )
goto cleanup;
}
Я попытался добавить "set follow-fork-mode child
", как сказано здесь: http://unix.derkeiler.com/Newsgroups/comp.unix.programmer/2006-02/msg00435.html
1. Как я могу отлаживать раздел кода, где (0==pid)
?
2. Когда я дойду до утверждения wait, отладчик сразу вернется, не ждет() предположим, чтобы приостановить до возвращения ребенка? Почему он немедленно возвращается?