diff options
| -rw-r--r-- | runtime/debugger.cc | 5 | ||||
| -rw-r--r-- | runtime/instrumentation.h | 4 | ||||
| -rw-r--r-- | runtime/trace.cc | 5 | ||||
| -rw-r--r-- | runtime/trace.h | 3 |
4 files changed, 14 insertions, 3 deletions
diff --git a/runtime/debugger.cc b/runtime/debugger.cc index af56810fcb..b4931cf25a 100644 --- a/runtime/debugger.cc +++ b/runtime/debugger.cc @@ -268,6 +268,11 @@ class DebugInstrumentationListener FINAL : public instrumentation::Instrumentati LOG(ERROR) << "Unexpected exception handled event in debugger"; } + // TODO Might be worth it to implement this. + void WatchedFramePop(Thread* thread ATTRIBUTE_UNUSED, + const ShadowFrame& frame ATTRIBUTE_UNUSED) OVERRIDE { + LOG(ERROR) << "Unexpected WatchedFramePop event in debugger"; + } private: static bool IsReturn(ArtMethod* method, uint32_t dex_pc) diff --git a/runtime/instrumentation.h b/runtime/instrumentation.h index fec027e39f..9bb49ea7c7 100644 --- a/runtime/instrumentation.h +++ b/runtime/instrumentation.h @@ -154,9 +154,7 @@ struct InstrumentationListener { // shadow-frames by deoptimizing stacks. virtual void WatchedFramePop(Thread* thread ATTRIBUTE_UNUSED, const ShadowFrame& frame ATTRIBUTE_UNUSED) - REQUIRES_SHARED(Locks::mutator_lock_) { - return; - } + REQUIRES_SHARED(Locks::mutator_lock_) = 0; }; // Instrumentation is a catch-all for when extra information is required from the runtime. The diff --git a/runtime/trace.cc b/runtime/trace.cc index b30de795a4..4c3fa20c9d 100644 --- a/runtime/trace.cc +++ b/runtime/trace.cc @@ -832,6 +832,11 @@ void Trace::InvokeVirtualOrInterface(Thread*, << " " << dex_pc; } +void Trace::WatchedFramePop(Thread* self ATTRIBUTE_UNUSED, + const ShadowFrame& frame ATTRIBUTE_UNUSED) { + LOG(ERROR) << "Unexpected WatchedFramePop event in tracing"; +} + void Trace::ReadClocks(Thread* thread, uint32_t* thread_clock_diff, uint32_t* wall_clock_diff) { if (UseThreadCpuClock()) { uint64_t clock_base = thread->GetTraceClockBase(); diff --git a/runtime/trace.h b/runtime/trace.h index 49d5b22373..a888dcbcd1 100644 --- a/runtime/trace.h +++ b/runtime/trace.h @@ -38,6 +38,7 @@ namespace art { class ArtField; class ArtMethod; class DexFile; +class ShadowFrame; class Thread; using DexIndexBitSet = std::bitset<65536>; @@ -194,6 +195,8 @@ class Trace FINAL : public instrumentation::InstrumentationListener { uint32_t dex_pc, ArtMethod* callee) REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!*unique_methods_lock_) OVERRIDE; + void WatchedFramePop(Thread* thread, const ShadowFrame& frame) + REQUIRES_SHARED(Locks::mutator_lock_) OVERRIDE; // Reuse an old stack trace if it exists, otherwise allocate a new one. static std::vector<ArtMethod*>* AllocStackTrace(); // Clear and store an old stack trace for later use. |