diff options
author | Daniel Jacobowitz <dan@debian.org> | 2010-02-01 16:13:14 +0000 |
---|---|---|
committer | Daniel Jacobowitz <dan@debian.org> | 2010-02-01 16:13:14 +0000 |
commit | f8893c711c4ee381385d983175cacb786f64774b (patch) | |
tree | 3ddbf80bdb0fac83883c25ef27d47df0ee210cb2 /gdb/arm-tdep.h | |
parent | feced2c94d506d91710d06e86ecdd5ac4b4d2c56 (diff) | |
download | gdb-f8893c711c4ee381385d983175cacb786f64774b.tar.gz |
* arm-linux-tdep.c (arm_linux_thumb2_be_breakpoint)
(arm_linux_thumb2_le_breakpoint): New constants.
(arm_linux_init_abi): Set thumb2_breakpoint and
thumb2_breakpoint_size.
* arm-tdep.c (thumb_insn_size, thumb_advance_itstate): New functions.
(thumb_get_next_pc): Add a comment. Rename IT to ITSTATE.
Implement support for single stepping through IT blocks if
a 32-bit Thumb breakpoint instruction is available.
(arm_breakpoint_from_pc): If a 32-bit Thumb breakpoint instruction
is available, use it when needed.
(arm_remote_breakpoint_from_pc): New function.
(arm_gdbarch_init): Register arm_remote_breakpoint_from_pc.
* arm-tdep.h (struct gdbarch_tdep): Correct thumb_breakpoint
comment. Add thumb2_breakpoint and thumb2_breakpoint_size.
gdbserver/
* linux-arm-low.c (thumb_breakpoint_len): Delete.
(thumb2_breakpoint): New.
(arm_breakpoint_at): Check for Thumb-2 breakpoints.
testsuite/
* gdb.arch/thumb2-it.S, gdb.arch/thumb2-it.exp: New files.
Diffstat (limited to 'gdb/arm-tdep.h')
-rw-r--r-- | gdb/arm-tdep.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gdb/arm-tdep.h b/gdb/arm-tdep.h index 1e83834180f..e6220fe3724 100644 --- a/gdb/arm-tdep.h +++ b/gdb/arm-tdep.h @@ -167,9 +167,16 @@ struct gdbarch_tdep const char *arm_breakpoint; /* Breakpoint pattern for an ARM insn. */ int arm_breakpoint_size; /* And its size. */ - const char *thumb_breakpoint; /* Breakpoint pattern for an ARM insn. */ + const char *thumb_breakpoint; /* Breakpoint pattern for a Thumb insn. */ int thumb_breakpoint_size; /* And its size. */ + /* If the Thumb breakpoint is an undefined instruction (which is + affected by IT blocks) rather than a BKPT instruction (which is + not), then we need a 32-bit Thumb breakpoint to preserve the + instruction count in IT blocks. */ + const char *thumb2_breakpoint; + int thumb2_breakpoint_size; + int jb_pc; /* Offset to PC value in jump buffer. If this is negative, longjmp support will be disabled. */ |