A dirty (but useful) hack to decode thread offsets in disassembly.
Plus more readable x86 formatting.
Also fix a bug decoding LDR (immediate, Thumb) encoding T1.
Change-Id: I95c79d3fb4d912d1ef386b5843abd37d3652a476
diff --git a/src/disassembler_x86.cc b/src/disassembler_x86.cc
index d7ee80b..48074b8 100644
--- a/src/disassembler_x86.cc
+++ b/src/disassembler_x86.cc
@@ -399,11 +399,11 @@
}
args << StringPrintf("%d (%p)", displacement, instr + displacement);
}
- os << StringPrintf("\t\t\t%p: ", begin_instr);
+ std::stringstream hex;
for (size_t i = 0; begin_instr + i < instr; ++i) {
- os << StringPrintf("%02X", begin_instr[i]);
+ hex << StringPrintf("%02X", begin_instr[i]);
}
- os << StringPrintf("\t%-7s ", opcode.str().c_str()) << args.str() << std::endl;
+ os << StringPrintf("\t\t\t%p: %22s \t%-7s ", begin_instr, hex.str().c_str(), opcode.str().c_str()) << args.str() << '\n';
return instr - begin_instr;
}