aboutsummaryrefslogtreecommitdiff
path: root/gdbserver/linux-arm-low.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gdbserver/linux-arm-low.cc')
-rw-r--r--gdbserver/linux-arm-low.cc19
1 files changed, 14 insertions, 5 deletions
diff --git a/gdbserver/linux-arm-low.cc b/gdbserver/linux-arm-low.cc
index 2e3d00a..4577c83 100644
--- a/gdbserver/linux-arm-low.cc
+++ b/gdbserver/linux-arm-low.cc
@@ -113,6 +113,10 @@ protected:
void low_new_fork (process_info *parent, process_info *child) override;
void low_prepare_to_resume (lwp_info *lwp) override;
+
+ bool low_supports_catch_syscall () override;
+
+ void low_get_syscall_trapinfo (regcache *regcache, int *sysno) override;
};
/* The singleton target ops object. */
@@ -1038,10 +1042,16 @@ arm_target::supports_hardware_single_step ()
return false;
}
-/* Implementation of linux_target_ops method "get_syscall_trapinfo". */
+bool
+arm_target::low_supports_catch_syscall ()
+{
+ return true;
+}
-static void
-arm_get_syscall_trapinfo (struct regcache *regcache, int *sysno)
+/* Implementation of linux target ops method "low_get_syscall_trapinfo". */
+
+void
+arm_target::low_get_syscall_trapinfo (regcache *regcache, int *sysno)
{
if (arm_is_thumb_mode ())
collect_register_by_name (regcache, "r7", sysno);
@@ -1052,7 +1062,7 @@ arm_get_syscall_trapinfo (struct regcache *regcache, int *sysno)
collect_register_by_name (regcache, "pc", &pc);
- if (the_target->read_memory (pc - 4, (unsigned char *) &insn, 4))
+ if (read_memory (pc - 4, (unsigned char *) &insn, 4))
*sysno = UNKNOWN_SYSCALL;
else
{
@@ -1119,7 +1129,6 @@ arm_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- arm_get_syscall_trapinfo,
};
/* The linux target ops object. */