Я отслеживаю процесс.После fork / execl, а затем wait
на дочернем объекте, я получаю состояние 2943. Я проверяю на сбой, но waitpid
сообщает о сбое.Я посмотрел в <sys/wait.h>
, но значение не определено и не представляется битовой маской.
Любые идеи о том, где я должен смотреть?
int DoParentProcess(int childPid)
{
int err, ret, status;
for( ; ; )
{
ret = waitpid(childPid, &status, 0);
err = errno;
///////////////////////////////////////
if(ret == -1)
{
cerr << "Failed to wait on child process, errno = " << err << endl;
return err;
}
///////////////////////////////////////
cout << "Parent: wait status = " << status << endl;
if(WIFEXITED(status))
break;
///////////////////////////////////////
ret = ptrace(PTRACE_CONT, childPid, 0, 0);
err = errno;
if(ret == -1)
{
cerr << "Failed to continue child process, errno = " << err << endl;
return err;
}
}
return 0;
}