aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2009-10-28 20:17:36 +0000
committerDaniel Jacobowitz <drow@false.org>2009-10-28 20:17:36 +0000
commit5fed8c4358f5db8bb9a83aaf36107631680bf0d2 (patch)
treefd620c4071b8eac4145e8342e6242415523a84bd
parent875cdfbb543a93950571891898569bb67e78de27 (diff)
downloadgdb-5fed8c4358f5db8bb9a83aaf36107631680bf0d2.zip
gdb-5fed8c4358f5db8bb9a83aaf36107631680bf0d2.tar.gz
gdb-5fed8c4358f5db8bb9a83aaf36107631680bf0d2.tar.bz2
Reported by Antti Hatala <ahatala@nvidia.com>.
* arm-tdep.c (thumb_get_next_pc): Limit check to IT instructions correctly.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/arm-tdep.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a58386d..fe28f95 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2009-10-28 Daniel Jacobowitz <dan@codesourcery.com>
+
+ Reported by Antti Hatala <ahatala@nvidia.com>.
+
+ * arm-tdep.c (thumb_get_next_pc): Limit check to IT instructions
+ correctly.
+
2009-10-28 Pedro Alves <pedro@codesourcery.com>
* dwarf2-frame.c (dwarf2_build_frame_info): Discard --gc-section
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 063e8f5..b71d05f 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -2284,7 +2284,7 @@ thumb_get_next_pc (struct frame_info *frame, CORE_ADDR pc)
/* On GNU/Linux, where this routine is used, we use an undefined
instruction as a breakpoint. Unlike BKPT, IT can disable execution
of the undefined instruction. So we might miss the breakpoint! */
- if ((inst1 & 0xff00) == 0xbf00 || (it & 0x0f))
+ if (((inst1 & 0xff00) == 0xbf00 && (inst1 & 0x000f) != 0) || (it & 0x0f))
error (_("Stepping through Thumb-2 IT blocks is not yet supported"));
if (it & 0x0f)