diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2007-05-16 15:31:12 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2007-05-16 15:31:12 +0000 |
commit | 190dce0965f152d147a0a57a65719c004bbe4648 (patch) | |
tree | 2b8dba5f5e16bedf398823e0a3f6a790cdd5fa2d /gdb/armobsd-tdep.c | |
parent | bb63802a4f72c2aa632a3118d307a1b8ec934c9a (diff) | |
download | gdb-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.c | 21 |
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; + } } |