ptrace(监控进程)
被跟踪进程收到任何信号(除SIGKILL)都会停止,将信号转给跟踪器(触发wait)
PTRACE_SYSCALL:跟踪系统调用,每次系统调用会收到一个SIGTRAP
PTRACE_SINGLESTEP:跟踪单步,每执行完一个指令收到一个SIGTRAP
PTRACE_CONT:继续
断点(int 3 指令)会触发一个SIGTRAP
wait, waitpid, waitid(等待进程状态改变)
1.进程终止(terminated) WIFEXITED/WIFSIGNALED
2.进程被信号停止(stopped by a signal) WIFSTOPPED
3.进程恢复(resumed by a signal) WIFCONTINUED
ptrace拦截信号原理:被跟踪进程收到所有信号(除SIGKILL)会被停止,并触发跟踪器的wait回调
</