aboutsummaryrefslogtreecommitdiff
path: root/gdb/arm-tdep.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2007-05-16 15:31:12 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2007-05-16 15:31:12 +0000
commit190dce0965f152d147a0a57a65719c004bbe4648 (patch)
tree2b8dba5f5e16bedf398823e0a3f6a790cdd5fa2d /gdb/arm-tdep.c
parentbb63802a4f72c2aa632a3118d307a1b8ec934c9a (diff)
downloadgdb-190dce0965f152d147a0a57a65719c004bbe4648.zip
gdb-190dce0965f152d147a0a57a65719c004bbe4648.tar.gz
gdb-190dce0965f152d147a0a57a65719c004bbe4648.tar.bz2
* config/arm/embed.mt (DEPRECATED_TM_FILE): Set to tm-arm.h.
* config/arm/tm-embed.h: Delete file. * arm-tdep.h (arm_software_single_step): Declare. * arm-tdep.c (arm_software_single_step): Make global. (arm_gdbarch_init): Move set_gdbarch_software_single_step call from here to ... * arm-linux-tdep.c (arm_linux_init_abi): ... here ... * armnbsd-tdep.c (arm_netbsd_init_abi_common): ... here ... * armobsd-tdep.c (armobsd_init_abi): ... here ... * arm-wince-tdep.c (arm_wince_init_abi): ... and here. * arm-tdep.c (ARM_LE_BREAKPOINT, ARM_BE_BREAKPOINT): No longer allow defines to be overriden by TM file. (THUMB_LE_BREAKPOINT, THUMB_BE_BREAKPOINT): Likewise. Also, change default to {0xbe,0xbe}. * armobsd-tdep.c (arm_obsd_thumb_le_breakpoint, arm_obsd_thumb_be_breakpoint): New global variables. (armobsd_init_abi): Override tdep->thumb_breakpoint and tdep->thumb_breakpoint_size. * arm-wince-tdep.c (arm_wince_thumb_le_breakpoint): New variable. (arm_wince_init_abi): Override tdep->thumb_breakpoint and tdep->thumb_breakpoint_size. * arm-tdep.c (arm_gdbarch_init): Add set_gdbarch_skip_trampoline_code.
Diffstat (limited to 'gdb/arm-tdep.c')
-rw-r--r--gdb/arm-tdep.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 8a3a1f9..2cfb5c0 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -1904,7 +1904,7 @@ arm_get_next_pc (CORE_ADDR pc)
single-step support. We find the target of the coming instruction
and breakpoint it. */
-static int
+int
arm_software_single_step (struct regcache *regcache)
{
/* NOTE: This may insert the wrong breakpoint instruction when
@@ -1989,21 +1989,10 @@ gdb_print_insn_arm (bfd_vma memaddr, disassemble_info *info)
instruction to force a trap. This can be handled by by the
abi-specific code during establishment of the gdbarch vector. */
-
-/* NOTE rearnsha 2002-02-18: for now we allow a non-multi-arch gdb to
- override these definitions. */
-#ifndef ARM_LE_BREAKPOINT
#define ARM_LE_BREAKPOINT {0xFE,0xDE,0xFF,0xE7}
-#endif
-#ifndef ARM_BE_BREAKPOINT
#define ARM_BE_BREAKPOINT {0xE7,0xFF,0xDE,0xFE}
-#endif
-#ifndef THUMB_LE_BREAKPOINT
-#define THUMB_LE_BREAKPOINT {0xfe,0xdf}
-#endif
-#ifndef THUMB_BE_BREAKPOINT
-#define THUMB_BE_BREAKPOINT {0xdf,0xfe}
-#endif
+#define THUMB_LE_BREAKPOINT {0xbe,0xbe}
+#define THUMB_BE_BREAKPOINT {0xbe,0xbe}
static const char arm_default_arm_le_breakpoint[] = ARM_LE_BREAKPOINT;
static const char arm_default_arm_be_breakpoint[] = ARM_BE_BREAKPOINT;
@@ -2939,6 +2928,9 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Advance PC across function entry code. */
set_gdbarch_skip_prologue (gdbarch, arm_skip_prologue);
+ /* Skip trampolines. */
+ set_gdbarch_skip_trampoline_code (gdbarch, arm_skip_stub);
+
/* The stack grows downward. */
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
@@ -2969,10 +2961,6 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Returning results. */
set_gdbarch_return_value (gdbarch, arm_return_value);
- /* Single stepping. */
- /* XXX For an RDI target we should ask the target if it can single-step. */
- set_gdbarch_software_single_step (gdbarch, arm_software_single_step);
-
/* Disassembly. */
set_gdbarch_print_insn (gdbarch, gdb_print_insn_arm);