diff options
Diffstat (limited to 'runtime/instrumentation.cc')
| -rw-r--r-- | runtime/instrumentation.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/runtime/instrumentation.cc b/runtime/instrumentation.cc index 2dd2b7d403..ed64d7efbe 100644 --- a/runtime/instrumentation.cc +++ b/runtime/instrumentation.cc @@ -19,7 +19,6 @@ #include <sstream> #include "arch/context.h" -#include "art_code.h" #include "art_method-inl.h" #include "atomic.h" #include "class_linker.h" @@ -37,6 +36,7 @@ #include "mirror/object_array-inl.h" #include "mirror/object-inl.h" #include "nth_caller_visitor.h" +#include "oat_quick_method_header.h" #include "thread.h" #include "thread_list.h" @@ -252,7 +252,9 @@ static void InstrumentationInstallStack(Thread* thread, void* arg) instrumentation_stack_->insert(it, instrumentation_frame); SetReturnPc(instrumentation_exit_pc_); } - dex_pcs_.push_back(GetCurrentCode().ToDexPc(last_return_pc_)); + dex_pcs_.push_back((GetCurrentOatQuickMethodHeader() == nullptr) + ? DexFile::kDexNoIndex + : GetCurrentOatQuickMethodHeader()->ToDexPc(m, last_return_pc_)); last_return_pc_ = return_pc; ++instrumentation_stack_depth_; return true; // Continue. |