diff options
author | Mark Kettenis <kettenis@gnu.org> | 2011-06-12 18:21:55 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2011-06-12 18:21:55 +0000 |
commit | 8bbdd3f4631f74565ffa27111d5c19c56cd87926 (patch) | |
tree | ef6bf05b96d40a88fcfd01b76927501a9a9b0743 | |
parent | 0222e8baa67fd242d781e864fc8e9ca228dfe91e (diff) | |
download | gdb-8bbdd3f4631f74565ffa27111d5c19c56cd87926.zip gdb-8bbdd3f4631f74565ffa27111d5c19c56cd87926.tar.gz gdb-8bbdd3f4631f74565ffa27111d5c19c56cd87926.tar.bz2 |
* i386-tdep.c (i386_match_insn_block): Use length of the proper
instruction when walking back through the instruction stream.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/i386-tdep.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c72fda4..ab49a3f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2011-06-12 Mark Kettenis <kettenis@gnu.org> + + * i386-tdep.c (i386_match_insn_block): Use length of the proper + instruction when walking back through the instruction stream. + 2011-06-10 Jan Kratochvil <jan.kratochvil@redhat.com> * symtab.c (output_partial_symbol_filename): Exchange the filename and diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index b2b7412..8355508 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -1191,14 +1191,14 @@ i386_match_insn_block (CORE_ADDR pc, struct i386_insn *insn_patterns) if (insn == NULL) return 0; - current_pc = pc - insn->len; + current_pc = pc; ix = insn - insn_patterns; for (i = ix - 1; i >= 0; i--) { + current_pc -= insn_patterns[i].len; + if (!i386_match_pattern (current_pc, insn_patterns[i])) return 0; - - current_pc -= insn_patterns[i].len; } current_pc = pc + insn->len; |