Ptrace System Call ptrace(2) is how a debugger can control a process long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data); PTRACE_TRACEME PTRACE_ATTACH PTRACE_KILL PTRACE_DETACH TRACE_PEEKTEXT, PTRACE_PEEKDATA PTRACE_PEEKUSER PTRACE_POKETEXT, PTRACE_POKEDATA PTRACE_POKEUSER PTRACE_GETREGS, PTRACE_GETFPREGS PTRACE_SETREGS, PTRACE_SETFPREGS PTRACE_CONT PTRACE_SYSCALL, PTRACE_SINGLESTEP If you want, I can give you a minimal example using ptrace