diff options
author | David Brazdil <dbrazdil@google.com> | 2015-06-23 09:47:23 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-06-23 09:47:24 +0000 |
commit | 1f22dbc10d9fdc96a6814e737718098e36a0ea3c (patch) | |
tree | 9cfa99a92e0326d7fd0aa63381be5f010482e9f4 /compiler/optimizing/graph_visualizer.cc | |
parent | da0e224d79262b11fbac9e7b1fdc11c4df31b77f (diff) | |
parent | 3a690be14f70cf1040d5492530b73c97317897e6 (diff) |
Merge "ART: Fix GraphVisualizer dlopen crash"
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
-rw-r--r-- | compiler/optimizing/graph_visualizer.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc index 2b85c7c6f9..7d723ef13d 100644 --- a/compiler/optimizing/graph_visualizer.cc +++ b/compiler/optimizing/graph_visualizer.cc @@ -96,7 +96,7 @@ typedef Disassembler* create_disasm_prototype(InstructionSet instruction_set, class HGraphVisualizerDisassembler { public: HGraphVisualizerDisassembler(InstructionSet instruction_set, const uint8_t* base_address) - : instruction_set_(instruction_set) { + : instruction_set_(instruction_set), disassembler_(nullptr) { libart_disassembler_handle_ = dlopen(kIsDebugBuild ? "libartd-disassembler.so" : "libart-disassembler.so", RTLD_NOW); if (libart_disassembler_handle_ == nullptr) { @@ -128,6 +128,10 @@ class HGraphVisualizerDisassembler { } void Disassemble(std::ostream& output, size_t start, size_t end) const { + if (disassembler_ == nullptr) { + return; + } + const uint8_t* base = disassembler_->GetDisassemblerOptions()->base_address_; if (instruction_set_ == kThumb2) { // ARM and Thumb-2 use the same disassembler. The bottom bit of the |