ptrace is the exact syscall gdb, strace, and Docker's `--cap-add=SYS_PTRACE` debugging workflows are built on, and it's also how sandboxes like early gVisor and rr's record-and-replay debugger intercept every syscall a traced process makes. The orig_rax-versus-rax distinction you'll implement here (entry vs exit stop) is a real, easy-to-get-backwards detail that trips up first-time strace-clone authors.