X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdbserver%2Flinux-arm-low.cc;h=fb5b761a833aea343563b3c45770969658b95083;hb=5fd104addfddb68844fb8df67be832ee98ad9888;hp=a7d5261d2e22cfc1ed5dedcb9f99154f1c6c2bad;hpb=9cfd87155142f0467cdadb067efd21e165956c20;p=deliverable%2Fbinutils-gdb.git diff --git a/gdbserver/linux-arm-low.cc b/gdbserver/linux-arm-low.cc index a7d5261d2e..fb5b761a83 100644 --- a/gdbserver/linux-arm-low.cc +++ b/gdbserver/linux-arm-low.cc @@ -72,6 +72,8 @@ public: bool supports_z_point_type (char z_type) override; + bool supports_hardware_single_step () override; + protected: void low_arch_setup () override; @@ -111,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. */ @@ -1030,16 +1036,22 @@ arm_target::low_get_next_pcs (regcache *regcache) /* Support for hardware single step. */ -static int -arm_supports_hardware_single_step (void) +bool +arm_target::supports_hardware_single_step () +{ + return false; +} + +bool +arm_target::low_supports_catch_syscall () { - return 0; + return true; } -/* Implementation of linux_target_ops method "get_syscall_trapinfo". */ +/* Implementation of linux target ops method "low_get_syscall_trapinfo". */ -static void -arm_get_syscall_trapinfo (struct regcache *regcache, int *sysno) +void +arm_target::low_get_syscall_trapinfo (regcache *regcache, int *sysno) { if (arm_is_thumb_mode ()) collect_register_by_name (regcache, "r7", sysno); @@ -1050,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 { @@ -1116,11 +1128,6 @@ arm_target::get_regs_info () return ®s_info_arm; } -struct linux_target_ops the_low_target = { - arm_supports_hardware_single_step, - arm_get_syscall_trapinfo, -}; - /* The linux target ops object. */ linux_process_target *the_linux_target = &the_arm_target;