diff options
Diffstat (limited to 'src/DebuggerKit/POSIXMachContract.h')
| -rw-r--r-- | src/DebuggerKit/POSIXMachContract.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/DebuggerKit/POSIXMachContract.h b/src/DebuggerKit/POSIXMachContract.h index 5bd4ba8..76aa238 100644 --- a/src/DebuggerKit/POSIXMachContract.h +++ b/src/DebuggerKit/POSIXMachContract.h @@ -12,13 +12,17 @@ /// @brief POSIX Mach debugger. #include <DebuggerKit/DebuggerContract.h> +#include <filesystem> +#include <vector> +#ifdef __APPLE__ CK_IMPORT_C kern_return_t mach_vm_write(vm_map_t target_task, mach_vm_address_t address, vm_offset_t data, mach_msg_type_number_t dataCnt); CK_IMPORT_C kern_return_t mach_vm_protect(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size, boolean_t set_maximum, vm_prot_t new_protection); +#endif #define PTRACE_ATTACH PT_ATTACHEXC #define PTRACE_DETACH PT_DETACH @@ -93,6 +97,7 @@ class POSIXMachContract final DK_DEBUGGER_CONTRACT { return false; } +#ifdef __APPLE__ task_read_t task; task_for_pid(mach_task_self(), m_pid, &task); @@ -102,6 +107,7 @@ class POSIXMachContract final DK_DEBUGGER_CONTRACT { VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE); mach_vm_write(task, (mach_vm_address_t) addr, (vm_offset_t) &brk_inst, sizeof(addr)); +#endif return true; } @@ -109,6 +115,7 @@ class POSIXMachContract final DK_DEBUGGER_CONTRACT { return false; } +#ifdef __APPLE__ Bool Break() noexcept override { task_read_t task; task_for_pid(mach_task_self(), m_pid, &task); @@ -137,6 +144,7 @@ class POSIXMachContract final DK_DEBUGGER_CONTRACT { return kr = KERN_SUCCESS; } +#endif private: ProcessID m_pid{0}; |
