aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog12
-rw-r--r--gdb/arm-linux-tdep.c5
-rw-r--r--gdb/arm-tdep.c19
-rw-r--r--gdb/arm-tdep.h2
4 files changed, 20 insertions, 18 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 099c63e..163e1a9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2016-11-08 Yao Qi <yao.qi@linaro.org>
+
+ * arm-linux-tdep.c (arm_linux_software_single_step): Don't
+ call arm_insert_single_step_breakpoint, call
+ insert_single_step_breakpoint instead.
+ * arm-tdep.c (arm_insert_single_step_breakpoint): Remove.
+ (arm_software_single_step): Don't call
+ arm_insert_single_step_breakpoint, call
+ insert_single_step_breakpoint instead.
+ * arm-tdep.h (arm_insert_single_step_breakpoint): Remove
+ declaration.
+
2016-11-08 Cordian A. Daniluk <th3c0r1uk@gmail.com>
PR breakpoints/20739
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index 55bbae7..bc92177 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -950,7 +950,10 @@ arm_linux_software_single_step (struct frame_info *frame)
next_pcs = arm_get_next_pcs (&next_pcs_ctx);
for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); i++)
- arm_insert_single_step_breakpoint (gdbarch, aspace, pc);
+ {
+ pc = gdbarch_addr_bits_remove (gdbarch, pc);
+ insert_single_step_breakpoint (gdbarch, aspace, pc);
+ }
do_cleanups (old_chain);
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index f41ad6d..a3bea97 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -4235,20 +4235,6 @@ convert_to_extended (const struct floatformat *fmt, void *dbl, const void *ptr,
&d, dbl);
}
-/* Like insert_single_step_breakpoint, but make sure we use a breakpoint
- of the appropriate mode (as encoded in the PC value), even if this
- differs from what would be expected according to the symbol tables. */
-
-void
-arm_insert_single_step_breakpoint (struct gdbarch *gdbarch,
- struct address_space *aspace,
- CORE_ADDR pc)
-{
- pc = gdbarch_addr_bits_remove (gdbarch, pc);
-
- insert_single_step_breakpoint (gdbarch, aspace, pc);
-}
-
/* Given BUF, which is OLD_LEN bytes ending at ENDADDR, expand
the buffer to be NEW_LEN bytes ending at ENDADDR. Return
NULL if an error occurs. BUF is freed. */
@@ -6322,7 +6308,10 @@ arm_software_single_step (struct frame_info *frame)
next_pcs = arm_get_next_pcs (&next_pcs_ctx);
for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); i++)
- arm_insert_single_step_breakpoint (gdbarch, aspace, pc);
+ {
+ pc = gdbarch_addr_bits_remove (gdbarch, pc);
+ insert_single_step_breakpoint (gdbarch, aspace, pc);
+ }
do_cleanups (old_chain);
diff --git a/gdb/arm-tdep.h b/gdb/arm-tdep.h
index e5d13bb..2eecfed 100644
--- a/gdb/arm-tdep.h
+++ b/gdb/arm-tdep.h
@@ -259,8 +259,6 @@ CORE_ADDR arm_get_next_pcs_addr_bits_remove (struct arm_get_next_pcs *self,
int arm_get_next_pcs_is_thumb (struct arm_get_next_pcs *self);
-void arm_insert_single_step_breakpoint (struct gdbarch *,
- struct address_space *, CORE_ADDR);
int arm_software_single_step (struct frame_info *);
int arm_is_thumb (struct regcache *regcache);
int arm_frame_is_thumb (struct frame_info *frame);