|
|
|
|
@ -87,9 +87,11 @@ void TraceScreen_run(TraceScreen* this) { |
|
|
|
|
if (child == -1) return; |
|
|
|
|
if (child == 0) { |
|
|
|
|
dup2(fdpair[1], STDERR_FILENO); |
|
|
|
|
fcntl(fdpair[1], F_SETFL, O_NONBLOCK); |
|
|
|
|
sprintf(buffer, "%d", this->process->pid); |
|
|
|
|
execlp("strace", "strace", "-p", buffer, NULL); |
|
|
|
|
int ok = fcntl(fdpair[1], F_SETFL, O_NONBLOCK); |
|
|
|
|
if (ok != -1) { |
|
|
|
|
sprintf(buffer, "%d", this->process->pid); |
|
|
|
|
execlp("strace", "strace", "-p", buffer, NULL); |
|
|
|
|
} |
|
|
|
|
const char* message = "Could not execute 'strace'. Please make sure it is available in your $PATH."; |
|
|
|
|
write(fdpair[1], message, strlen(message)); |
|
|
|
|
exit(1); |
|
|
|
|
|