ptrace.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #ifndef _SYS_PTRACE_H
  2. #define _SYS_PTRACE_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include <stdint.h>
  7. #define PTRACE_TRACEME 0
  8. #define PT_TRACE_ME PTRACE_TRACEME
  9. #define PTRACE_PEEKTEXT 1
  10. #define PTRACE_PEEKDATA 2
  11. #define PTRACE_PEEKUSER 3
  12. #define PTRACE_POKETEXT 4
  13. #define PTRACE_POKEDATA 5
  14. #define PTRACE_POKEUSER 6
  15. #define PTRACE_CONT 7
  16. #define PTRACE_KILL 8
  17. #define PTRACE_SINGLESTEP 9
  18. #define PTRACE_GETREGS 12
  19. #define PTRACE_SETREGS 13
  20. #define PTRACE_GETFPREGS 14
  21. #define PTRACE_SETFPREGS 15
  22. #define PTRACE_ATTACH 16
  23. #define PTRACE_DETACH 17
  24. #define PTRACE_GETFPXREGS 18
  25. #define PTRACE_SETFPXREGS 19
  26. #define PTRACE_SYSCALL 24
  27. #define PTRACE_SETOPTIONS 0x4200
  28. #define PTRACE_GETEVENTMSG 0x4201
  29. #define PTRACE_GETSIGINFO 0x4202
  30. #define PTRACE_SETSIGINFO 0x4203
  31. #define PTRACE_GETREGSET 0x4204
  32. #define PTRACE_SETREGSET 0x4205
  33. #define PTRACE_SEIZE 0x4206
  34. #define PTRACE_INTERRUPT 0x4207
  35. #define PTRACE_LISTEN 0x4208
  36. #define PTRACE_PEEKSIGINFO 0x4209
  37. #define PTRACE_GETSIGMASK 0x420a
  38. #define PTRACE_SETSIGMASK 0x420b
  39. #define PTRACE_SECCOMP_GET_FILTER 0x420c
  40. #define PT_READ_I PTRACE_PEEKTEXT
  41. #define PT_READ_D PTRACE_PEEKDATA
  42. #define PT_READ_U PTRACE_PEEKUSER
  43. #define PT_WRITE_I PTRACE_POKETEXT
  44. #define PT_WRITE_D PTRACE_POKEDATA
  45. #define PT_WRITE_U PTRACE_POKEUSER
  46. #define PT_CONTINUE PTRACE_CONT
  47. #define PT_KILL PTRACE_KILL
  48. #define PT_STEP PTRACE_SINGLESTEP
  49. #define PT_GETREGS PTRACE_GETREGS
  50. #define PT_SETREGS PTRACE_SETREGS
  51. #define PT_GETFPREGS PTRACE_GETFPREGS
  52. #define PT_SETFPREGS PTRACE_SETFPREGS
  53. #define PT_ATTACH PTRACE_ATTACH
  54. #define PT_DETACH PTRACE_DETACH
  55. #define PT_GETFPXREGS PTRACE_GETFPXREGS
  56. #define PT_SETFPXREGS PTRACE_SETFPXREGS
  57. #define PT_SYSCALL PTRACE_SYSCALL
  58. #define PT_SETOPTIONS PTRACE_SETOPTIONS
  59. #define PT_GETEVENTMSG PTRACE_GETEVENTMSG
  60. #define PT_GETSIGINFO PTRACE_GETSIGINFO
  61. #define PT_SETSIGINFO PTRACE_SETSIGINFO
  62. #define PTRACE_O_TRACESYSGOOD 0x00000001
  63. #define PTRACE_O_TRACEFORK 0x00000002
  64. #define PTRACE_O_TRACEVFORK 0x00000004
  65. #define PTRACE_O_TRACECLONE 0x00000008
  66. #define PTRACE_O_TRACEEXEC 0x00000010
  67. #define PTRACE_O_TRACEVFORKDONE 0x00000020
  68. #define PTRACE_O_TRACEEXIT 0x00000040
  69. #define PTRACE_O_TRACESECCOMP 0x00000080
  70. #define PTRACE_O_EXITKILL 0x00100000
  71. #define PTRACE_O_SUSPEND_SECCOMP 0x00200000
  72. #define PTRACE_O_MASK 0x003000ff
  73. #define PTRACE_EVENT_FORK 1
  74. #define PTRACE_EVENT_VFORK 2
  75. #define PTRACE_EVENT_CLONE 3
  76. #define PTRACE_EVENT_EXEC 4
  77. #define PTRACE_EVENT_VFORK_DONE 5
  78. #define PTRACE_EVENT_EXIT 6
  79. #define PTRACE_EVENT_SECCOMP 7
  80. #define PTRACE_PEEKSIGINFO_SHARED 1
  81. struct ptrace_peeksiginfo_args {
  82. uint64_t off;
  83. uint32_t flags;
  84. int32_t nr;
  85. };
  86. long ptrace(int, ...);
  87. #ifdef __cplusplus
  88. }
  89. #endif
  90. #endif