From 190dce0965f152d147a0a57a65719c004bbe4648 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Wed, 16 May 2007 15:31:12 +0000 Subject: * 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. --- gdb/armobsd-tdep.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gdb/armobsd-tdep.c') 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; + } } -- cgit v1.1