#ifndef _SYS_PTRACE_H #define _SYS_PTRACE_H #ifdef __cplusplus extern "C" { #endif #include enum __ptrace_request { PTRACE_TRACEME = 0, PTRACE_PEEKTEXT, PTRACE_PEEKDATA, PTRACE_PEEKUSER, PTRACE_POKETEXT, PTRACE_POKEDATA, PTRACE_POKEUSER, PTRACE_CONT, PTRACE_KILL, PTRACE_SINGLESTEP, PTRACE_GETREGS = 12, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS, PTRACE_ATTACH, PTRACE_DETACH, PTRACE_GETFPXREGS, PTRACE_SETFPXREGS, PTRACE_SYSCALL = 24, PTRACE_SETOPTIONS = 0x4200, PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO, PTRACE_GETREGSET, PTRACE_SETREGSET, PTRACE_SEIZE, PTRACE_INTERRUPT, PTRACE_LISTEN, PTRACE_PEEKSIGINFO, PTRACE_GETSIGMASK, PTRACE_SETSIGMASK }; #define PT_TRACE_ME PTRACE_TRACEME #define PT_READ_I PTRACE_PEEKTEXT #define PT_READ_D PTRACE_PEEKDATA #define PT_READ_U PTRACE_PEEKUSER #define PT_WRITE_I PTRACE_POKETEXT #define PT_WRITE_D PTRACE_POKEDATA #define PT_WRITE_U PTRACE_POKEUSER #define PT_CONTINUE PTRACE_CONT #define PT_KILL PTRACE_KILL #define PT_STEP PTRACE_SINGLESTEP #define PT_GETREGS PTRACE_GETREGS #define PT_SETREGS PTRACE_SETREGS #define PT_GETFPREGS PTRACE_GETFPREGS #define PT_SETFPREGS PTRACE_SETFPREGS #define PT_ATTACH PTRACE_ATTACH #define PT_DETACH PTRACE_DETACH #define PT_GETFPXREGS PTRACE_GETFPXREGS #define PT_SETFPXREGS PTRACE_SETFPXREGS #define PT_SYSCALL PTRACE_SYSCALL #define PT_SETOPTIONS PTRACE_SETOPTIONS #define PT_GETEVENTMSG PTRACE_GETEVENTMSG #define PT_GETSIGINFO PTRACE_GETSIGINFO #define PT_SETSIGINFO PTRACE_SETSIGINFO #define PTRACE_O_TRACESYSGOOD 0x00000001 #define PTRACE_O_TRACEFORK 0x00000002 #define PTRACE_O_TRACEVFORK 0x00000004 #define PTRACE_O_TRACECLONE 0x00000008 #define PTRACE_O_TRACEEXEC 0x00000010 #define PTRACE_O_TRACEVFORKDONE 0x00000020 #define PTRACE_O_TRACEEXIT 0x00000040 #define PTRACE_O_TRACESECCOMP 0x00000080 #define PTRACE_O_EXITKILL 0x00100000 #define PTRACE_O_MASK 0x001000ff #define PTRACE_EVENT_FORK 1 #define PTRACE_EVENT_VFORK 2 #define PTRACE_EVENT_CLONE 3 #define PTRACE_EVENT_EXEC 4 #define PTRACE_EVENT_VFORK_DONE 5 #define PTRACE_EVENT_EXIT 6 #define PTRACE_EVENT_SECCOMP 7 #define PTRACE_PEEKSIGINFO_SHARED 1 struct ptrace_peeksiginfo_args { uint64_t off; uint32_t flags; int32_t nr; }; long ptrace(enum __ptrace_request, ...); #ifdef __cplusplus } #endif #endif