gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdbserver / linux-arm-low.cc
index 2e3d00a489afd94a40398f60e7fbbf7b1ce5a4a0..fb5b761a833aea343563b3c45770969658b95083 100644 (file)
@@ -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
        {
@@ -1118,10 +1128,6 @@ arm_target::get_regs_info ()
   return &regs_info_arm;
 }
 
-struct linux_target_ops the_low_target = {
-  arm_get_syscall_trapinfo,
-};
-
 /* The linux target ops object.  */
 
 linux_process_target *the_linux_target = &the_arm_target;
This page took 0.025639 seconds and 4 git commands to generate.