verbose_log->Printf("PTRACE_POKEUSER %s", buf.GetData());
break;
}
+#ifdef PT_SETREGS
case PTRACE_SETREGS:
{
DisplayBytes(buf, data, data_size);
verbose_log->Printf("PTRACE_SETREGS %s", buf.GetData());
break;
}
+#endif
+#ifdef PT_SETFPREGS
case PTRACE_SETFPREGS:
{
DisplayBytes(buf, data, data_size);
verbose_log->Printf("PTRACE_SETFPREGS %s", buf.GetData());
break;
}
+#endif
case PTRACE_SETSIGINFO:
{
DisplayBytes(buf, data, sizeof(siginfo_t));
void
ReadGPROperation::Execute(ProcessMonitor *monitor)
{
+#ifdef PT_GETREGS
if (PTRACE(PTRACE_GETREGS, m_tid, NULL, m_buf, m_buf_size) < 0)
m_result = false;
else
m_result = true;
+#else
+ m_result = false;
+#endif
}
//------------------------------------------------------------------------------
void
ReadFPROperation::Execute(ProcessMonitor *monitor)
{
+#ifdef PT_GETFPREGS
if (PTRACE(PTRACE_GETFPREGS, m_tid, NULL, m_buf, m_buf_size) < 0)
m_result = false;
else
m_result = true;
+#else
+ m_result = false;
+#endif
}
//------------------------------------------------------------------------------
void
WriteGPROperation::Execute(ProcessMonitor *monitor)
{
+#ifdef PT_SETREGS
if (PTRACE(PTRACE_SETREGS, m_tid, NULL, m_buf, m_buf_size) < 0)
m_result = false;
else
m_result = true;
+#else
+ m_result = false;
+#endif
}
//------------------------------------------------------------------------------
void
WriteFPROperation::Execute(ProcessMonitor *monitor)
{
+#ifdef PT_SETFPREGS
if (PTRACE(PTRACE_SETFPREGS, m_tid, NULL, m_buf, m_buf_size) < 0)
m_result = false;
else
m_result = true;
+#else
+ m_result = false;
+#endif
}
//------------------------------------------------------------------------------