diff options
author | Brian Carlstrom <bdc@google.com> | 2014-09-14 20:34:17 -0700 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2014-09-16 12:50:08 -0700 |
commit | 2cbaccb67e22c0b313a9785bfc65bcb4b25d0676 (patch) | |
tree | daeb766e19880b651fd9c4a719c9a07dd7d4bd0e /disassembler/disassembler_x86.cc | |
parent | bace0378d720a1d2938ec7f6be17e2814671d20a (diff) | |
download | art-2cbaccb67e22c0b313a9785bfc65bcb4b25d0676.tar.gz art-2cbaccb67e22c0b313a9785bfc65bcb4b25d0676.tar.bz2 art-2cbaccb67e22c0b313a9785bfc65bcb4b25d0676.zip |
Avoid printing absolute addresses in oatdump
- Added printing of OatClass offsets.
- Added printing of OatMethod offsets.
- Added bounds checks for code size size, code size, mapping table, gc map, vmap table.
- Added sanity check of 100k for code size.
- Added partial disassembly of questionable code.
- Added --no-disassemble to disable disassembly.
- Added --no-dump:vmap to disable vmap dumping.
- Reordered OatMethod info to be in file order.
Bug: 15567083
(cherry picked from commit 34fa79ece5b3a1940d412cd94dbdcc4225aae72f)
Change-Id: I2c368f3b81af53b735149a866f3e491c9ac33fb8
Diffstat (limited to 'disassembler/disassembler_x86.cc')
-rw-r--r-- | disassembler/disassembler_x86.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/disassembler/disassembler_x86.cc b/disassembler/disassembler_x86.cc index 1848abe8a..1d29765d4 100644 --- a/disassembler/disassembler_x86.cc +++ b/disassembler/disassembler_x86.cc @@ -1215,7 +1215,9 @@ DISASSEMBLER_ENTRY(cmp, displacement = *reinterpret_cast<const int32_t*>(instr); instr += 4; } - args << StringPrintf("%+d (%p)", displacement, instr + displacement); + args << StringPrintf("%+d (", displacement) + << FormatInstructionPointer(instr + displacement) + << ")"; } if (prefix[1] == kFs && !supports_rex_) { args << " ; "; @@ -1238,8 +1240,8 @@ DISASSEMBLER_ENTRY(cmp, default: LOG(FATAL) << "Unreachable"; } prefixed_opcode << opcode.str(); - os << StringPrintf("%p: %22s \t%-7s ", begin_instr, hex.str().c_str(), - prefixed_opcode.str().c_str()) + os << FormatInstructionPointer(begin_instr) + << StringPrintf(": %22s \t%-7s ", hex.str().c_str(), prefixed_opcode.str().c_str()) << args.str() << '\n'; return instr - begin_instr; } // NOLINT(readability/fn_size) |