summaryrefslogtreecommitdiff
path: root/disassembler/disassembler.h
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2016-08-19 10:49:06 -0700
committerAndreas Gampe <agampe@google.com>2016-08-19 16:46:56 -0700
commit372f3a374681ef11f003460e14249adb7bc8313d (patch)
treeb6d2bd95975a0ce1096dc2aa761f8e6b30e42b18 /disassembler/disassembler.h
parent9c07ab332b8ebbcb1586c311bfcb75e19b8a35b4 (diff)
ART: Add thread offset printing hook to disassembler
To prepare separation of disassembler from libart, add a function hook to the disassembler options for thread offset name printing. Bug: 15436106 Change-Id: I9e9b7e565ae923952c64026f675ac527b560f51b
Diffstat (limited to 'disassembler/disassembler.h')
-rw-r--r--disassembler/disassembler.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/disassembler/disassembler.h b/disassembler/disassembler.h
index b08031587f..86793ccb19 100644
--- a/disassembler/disassembler.h
+++ b/disassembler/disassembler.h
@@ -28,8 +28,9 @@ namespace art {
class DisassemblerOptions {
public:
- // Should the disassembler print absolute or relative addresses.
- const bool absolute_addresses_;
+ using ThreadOffsetNameFunction = void (*)(std::ostream& os, uint32_t offset);
+
+ ThreadOffsetNameFunction thread_offset_name_function_;
// Base address for calculating relative code offsets when absolute_addresses_ is false.
const uint8_t* const base_address_;
@@ -37,6 +38,9 @@ class DisassemblerOptions {
// End address (exclusive);
const uint8_t* const end_address_;
+ // Should the disassembler print absolute or relative addresses.
+ const bool absolute_addresses_;
+
// If set, the disassembler is allowed to look at load targets in literal
// pools.
const bool can_read_literals_;
@@ -44,10 +48,12 @@ class DisassemblerOptions {
DisassemblerOptions(bool absolute_addresses,
const uint8_t* base_address,
const uint8_t* end_address,
- bool can_read_literals)
- : absolute_addresses_(absolute_addresses),
+ bool can_read_literals,
+ ThreadOffsetNameFunction fn)
+ : thread_offset_name_function_(fn),
base_address_(base_address),
end_address_(end_address),
+ absolute_addresses_(absolute_addresses),
can_read_literals_(can_read_literals) {}
private: