summaryrefslogtreecommitdiff
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.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/gdbserver/linux-arm-low.cc b/gdbserver/linux-arm-low.cc
index aab2c427f5a..bd42feba1c4 100644
--- a/gdbserver/linux-arm-low.cc
+++ b/gdbserver/linux-arm-low.cc
@@ -68,6 +68,8 @@ public:
const gdb_byte *sw_breakpoint_from_kind (int kind, int *size) override;
+ bool supports_software_single_step () override;
+
protected:
void low_arch_setup () override;
@@ -81,6 +83,8 @@ protected:
CORE_ADDR low_get_pc (regcache *regcache) override;
void low_set_pc (regcache *regcache, CORE_ADDR newpc) override;
+
+ std::vector<CORE_ADDR> low_get_next_pcs (regcache *regcache) override;
};
/* The singleton target ops object. */
@@ -968,10 +972,16 @@ arm_target::low_arch_setup ()
have_ptrace_getregset = 0;
}
+bool
+arm_target::supports_software_single_step ()
+{
+ return true;
+}
+
/* Fetch the next possible PCs after the current instruction executes. */
-static std::vector<CORE_ADDR>
-arm_gdbserver_get_next_pcs (struct regcache *regcache)
+std::vector<CORE_ADDR>
+arm_target::low_get_next_pcs (regcache *regcache)
{
struct arm_get_next_pcs next_pcs_ctx;
@@ -1075,7 +1085,6 @@ arm_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- arm_gdbserver_get_next_pcs,
0,
arm_breakpoint_at,
arm_supports_z_point_type,