ptrace和wait的理解 (ptrace监控进程)

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回调



ptrace help

wait help

系统调用学习笔记 - Ptrace和wait

你可能感兴趣的:(Linux)