summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pal/src/arch/i386/context.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/pal/src/arch/i386/context.cpp b/src/pal/src/arch/i386/context.cpp
index 4cd09373ce..44b5627eb6 100644
--- a/src/pal/src/arch/i386/context.cpp
+++ b/src/pal/src/arch/i386/context.cpp
@@ -298,11 +298,11 @@ BOOL CONTEXT_GetRegisters(DWORD processId, ucontext_t *registers)
{
#if HAVE_PT_REGS
struct pt_regs ptrace_registers;
+ if (ptrace((__ptrace_request)PT_GETREGS, processId, (caddr_t) &ptrace_registers, 0) == -1)
#elif HAVE_BSD_REGS_T
struct reg ptrace_registers;
+ if (ptrace(PT_GETREGS, processId, (caddr_t) &ptrace_registers, 0) == -1)
#endif
-
- if (ptrace((__ptrace_request)PT_GETREGS, processId, (caddr_t) &ptrace_registers, 0) == -1)
{
ASSERT("Failed ptrace(PT_GETREGS, processId:%d) errno:%d (%s)\n",
processId, errno, strerror(errno));
@@ -447,7 +447,11 @@ CONTEXT_SetThreadContext(
if (lpContext->ContextFlags &
(CONTEXT_CONTROL | CONTEXT_INTEGER))
{
+#if HAVE_PT_REGS
if (ptrace((__ptrace_request)PT_GETREGS, dwProcessId, (caddr_t)&ptrace_registers, 0) == -1)
+#elif HAVE_BSD_REGS_T
+ if (ptrace(PT_GETREGS, dwProcessId, (caddr_t)&ptrace_registers, 0) == -1)
+#endif
{
ASSERT("Failed ptrace(PT_GETREGS, processId:%d) errno:%d (%s)\n",
dwProcessId, errno, strerror(errno));
@@ -469,8 +473,12 @@ CONTEXT_SetThreadContext(
ASSIGN_INTEGER_REGS
}
#undef ASSIGN_REG
-
+
+#if HAVE_PT_REGS
if (ptrace((__ptrace_request)PT_SETREGS, dwProcessId, (caddr_t)&ptrace_registers, 0) == -1)
+#elif HAVE_BSD_REGS_T
+ if (ptrace(PT_SETREGS, dwProcessId, (caddr_t)&ptrace_registers, 0) == -1)
+#endif
{
ASSERT("Failed ptrace(PT_SETREGS, processId:%d) errno:%d (%s)\n",
dwProcessId, errno, strerror(errno));