aboutsummaryrefslogtreecommitdiff
path: root/gdb/armobsd-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/armobsd-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/armobsd-tdep.c')
-rw-r--r--gdb/armobsd-tdep.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gdb/armobsd-tdep.c b/gdb/armobsd-tdep.c
index 87df203..53e3d16 100644
--- a/gdb/armobsd-tdep.c
+++ b/gdb/armobsd-tdep.c
@@ -72,6 +72,10 @@ static const struct tramp_frame armobsd_sigframe =
};
+/* Override default thumb breakpoints. */
+static const char arm_obsd_thumb_le_breakpoint[] = {0xfe, 0xdf};
+static const char arm_obsd_thumb_be_breakpoint[] = {0xdf, 0xfe};
+
static void
armobsd_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
@@ -96,6 +100,23 @@ armobsd_init_abi (struct gdbarch_info info,
/* OpenBSD/arm uses -fpcc-struct-return by default. */
tdep->struct_return = pcc_struct_return;
+
+ /* Single stepping. */
+ set_gdbarch_software_single_step (gdbarch, arm_software_single_step);
+
+ /* Breakpoints. */
+ switch (info.byte_order)
+ {
+ case BFD_ENDIAN_BIG:
+ tdep->thumb_breakpoint = arm_obsd_thumb_be_breakpoint;
+ tdep->thumb_breakpoint_size = sizeof (arm_obsd_thumb_be_breakpoint);
+ break;
+
+ case BFD_ENDIAN_LITTLE:
+ tdep->thumb_breakpoint = arm_obsd_thumb_le_breakpoint;
+ tdep->thumb_breakpoint_size = sizeof (arm_obsd_thumb_le_breakpoint);
+ break;
+ }
}