summaryrefslogtreecommitdiff
path: root/gdb/config/arm
diff options
context:
space:
mode:
authorFernando Nasser <fnasser@redhat.com>2001-12-17 17:03:58 +0000
committerFernando Nasser <fnasser@redhat.com>2001-12-17 17:03:58 +0000
commita043ed57e53dd2bfd64ccd809e4c18eb3866feb9 (patch)
treef8e32d6b5186f9cff62928c9b76863c8ac4335d2 /gdb/config/arm
parent8c651848f24157ddd3c53356700c9e60fb3703a3 (diff)
downloadgdb-a043ed57e53dd2bfd64ccd809e4c18eb3866feb9.tar.gz
2001-12-17 Fernando Nasser <fnasser@redhat.com>
From Richard Earnshaw <rearnsha@arm.com>: * arm-tdep.c (arm_software_single_step): New function. Implements software single-stepping for ARM targets. (arm_get_next_pc, thumb_get_next_pc, bitcount, shifted_reg_val): Only needed for software single-stepping. * config/arm/tm-arm.h: Activate SOFTWARE_SINGLE_STEP_P.
Diffstat (limited to 'gdb/config/arm')
-rw-r--r--gdb/config/arm/tm-arm.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/gdb/config/arm/tm-arm.h b/gdb/config/arm/tm-arm.h
index 3c1535022b0..c9b91c9d0f7 100644
--- a/gdb/config/arm/tm-arm.h
+++ b/gdb/config/arm/tm-arm.h
@@ -96,9 +96,9 @@ extern CORE_ADDR arm_saved_pc_after_call (struct frame_info *);
Even this may only true if the condition predicate is true. The
following use a condition predicate of ALWAYS so it is always TRUE.
- There are other ways of forcing a breakpoint. ARM Linux, RisciX,
- and I suspect NetBSD will all use a software interrupt rather than
- an undefined instruction to force a trap. This can be handled by
+ There are other ways of forcing a breakpoint. ARM Linux, RISC iX,
+ and NetBSD will all use a software interrupt rather than an
+ undefined instruction to force a trap. This can be handled by
redefining some or all of the following in a target dependent
fashion. */
@@ -451,6 +451,16 @@ void arm_fix_call_dummy (char *dummy, CORE_ADDR pc, CORE_ADDR fun,
int nargs, struct value ** args,
struct type * type, int gcc_p);
+/* Most ARMs don't have single stepping capability, so provide a
+ single-stepping mechanism by default */
+#ifndef SOFTWARE_SINGLE_STEP_P
+#define SOFTWARE_SINGLE_STEP_P 1
+#endif
+#if SOFTWARE_SINGLE_STEP_P
+#define SOFTWARE_SINGLE_STEP(sig,bpt) arm_software_single_step((sig), (bpt))
+void arm_software_single_step PARAMS((int, int));
+#endif
+
CORE_ADDR arm_get_next_pc (CORE_ADDR pc);
/* Macros for setting and testing a bit in a minimal symbol that marks