[commit] Fix i386-tdep.c:i386_match_insn()
Mark Kettenis
mark.kettenis@xs4all.nl
Mon Jul 18 19:19:00 GMT 2005
As a first step towards integrating Jason's patch to improve the i386
prologue scanner, I committed the part of Jason's patch to make
i386_match_insn() actually do what I intended it to do.
Mark
Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>
Jason Molenda <jmolenda@apple.com>
* i386-tdep.c (i386_match_insn): Match complete instruction
pattern.
2005-07-18 Mark Kettenis <kettenis@gnu.org>
Index: i386-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/i386-tdep.c,v
retrieving revision 1.216
diff -u -p -r1.216 i386-tdep.c
--- i386-tdep.c 18 Jul 2005 12:40:13 -0000 1.216
+++ i386-tdep.c 18 Jul 2005 19:15:42 -0000
@@ -499,7 +499,8 @@ i386_match_insn (CORE_ADDR pc, struct i3
{
if ((op & insn->mask[0]) == insn->insn[0])
{
- unsigned char buf[I386_MAX_INSN_LEN - 1];
+ gdb_byte buf[I386_MAX_INSN_LEN - 1];
+ int insn_matched = 1;
size_t i;
gdb_assert (insn->len > 1);
@@ -509,10 +510,11 @@ i386_match_insn (CORE_ADDR pc, struct i3
for (i = 1; i < insn->len; i++)
{
if ((buf[i - 1] & insn->mask[i]) != insn->insn[i])
- break;
-
- return insn;
+ insn_matched = 0;
}
+
+ if (insn_matched)
+ return insn;
}
}
More information about the Gdb-patches
mailing list