pit_t pid = fork();
if (pid == -1){
abort();
} else if (pid == 0){
printf("this is child before\n");
ptrace(PTRACE_TRACEME);
raise(SIGSTOP);
printf("this is child after\n");
} else {
//waitpid(pid, NULL, WUNTRACED) for without ptrace
waitpid(pid, NULL, 0);
printf("this is parent\n");
}
没有ptrace行,此代码按预期工作,子节点中的第二个printf永远不会被打印,因为父节点不发送SIGCONT。但是使用ptrace线,孩子的第二个printf会被打印出来。为什么孩子在没有收到SIGCONT的情况下继续执行?
由于