|
From: <sv...@va...> - 2016-07-20 17:02:02
|
Author: sewardj
Date: Wed Jul 20 18:01:55 2016
New Revision: 3229
Log:
If an instruction can't be decoded, print the first 10 bytes at RSP
rather than 8. 8 is not enough to disambiguate the instruction in
some situations, in particular where there is a control immediate byte
at the end of the instruction.
Modified:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c
==============================================================================
--- trunk/priv/guest_amd64_toIR.c (original)
+++ trunk/priv/guest_amd64_toIR.c Wed Jul 20 18:01:55 2016
@@ -32077,7 +32077,7 @@
/* All decode failures end up here. */
if (sigill_diag) {
vex_printf("vex amd64->IR: unhandled instruction bytes: "
- "0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
+ "0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
getUChar(delta_start+0),
getUChar(delta_start+1),
getUChar(delta_start+2),
@@ -32085,7 +32085,9 @@
getUChar(delta_start+4),
getUChar(delta_start+5),
getUChar(delta_start+6),
- getUChar(delta_start+7) );
+ getUChar(delta_start+7),
+ getUChar(delta_start+8),
+ getUChar(delta_start+9) );
vex_printf("vex amd64->IR: REX=%d REX.W=%d REX.R=%d REX.X=%d REX.B=%d\n",
haveREX(pfx) ? 1 : 0, getRexW(pfx), getRexR(pfx),
getRexX(pfx), getRexB(pfx));
|