/art/runtime/entrypoints/quick/ |
H A D | quick_instrumentation_entrypoints.cc | 20 #include "instrumentation.h" 35 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 37 if (instrumentation->IsDeoptimized(method)) { 40 result = instrumentation->GetQuickCodeFor(method, sizeof(void*)); 44 instrumentation->PushInstrumentationStackFrame(self, method->IsStatic() ? nullptr : this_object, 55 CHECK(!self->IsExceptionPending()) << "Enter instrumentation exit stub with pending exception " 67 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 68 TwoWordReturn return_or_deoptimize_pc = instrumentation [all...] |
/art/runtime/ |
H A D | instrumentation.h | 41 namespace instrumentation { namespace in namespace:art 45 kMainHandlerTable = 0, // Main handler table: no suspend check, no instrumentation. 46 kAlternativeHandlerTable = 1, // Alternative handler table: suspend check and/or instrumentation 115 // typical use for instrumentation is for profiling and debugging. Instrumentation may add stubs 133 kInstrumentNothing, // execute without instrumentation 134 kInstrumentWithInstrumentationStubs, // execute with instrumentation entry/exit stubs 140 // Add a listener to be notified of the masked together sent of instrumentation events. This 147 // Removes a listener possibly removing instrumentation stubs. 196 // Enable method tracing by installing instrumentation entry/exit stubs or interpreter. 204 // Disable method tracing by uninstalling instrumentation entr [all...] |
H A D | instrumentation_test.cc | 17 #include "instrumentation.h" 32 namespace instrumentation { namespace in namespace:art 34 class TestInstrumentationListener FINAL : public instrumentation::InstrumentationListener { 154 instrumentation::Instrumentation* instr = Runtime::Current()->GetInstrumentation(); 174 instrumentation::Instrumentation* instr = Runtime::Current()->GetInstrumentation(); 178 ScopedSuspendAll ssa("Add instrumentation listener"); 195 ScopedSuspendAll ssa("Remove instrumentation listener"); 209 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local 216 instrumentation 225 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local 240 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local 255 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local 270 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local 282 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local [all...] |
H A D | quick_exception_handler.cc | 543 // Unwinds all instrumentation stack frame prior to catch handler or upcall. 590 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 592 instrumentation->PopMethodForUnwind(self_, is_deoptimization_);
|
H A D | instrumentation.cc | 17 #include "instrumentation.h" 44 namespace instrumentation { namespace in namespace:art 55 explicit InstallStubsClassVisitor(Instrumentation* instrumentation) argument 56 : instrumentation_(instrumentation) {} 148 // class, all its static methods code will be set to the instrumentation entry point. 153 // Oat code should not be used. Don't install instrumentation stub and 154 // use interpreter for instrumentation. 167 // Places the instrumentation exit pc as the return PC for every quick frame. This also allows 169 // Since we may already have done this previously, we need to push new instrumentation frame before 170 // existing instrumentation frame 285 Instrumentation* instrumentation = reinterpret_cast<Instrumentation*>(arg); local 323 RestoreStackVisitor(Thread* thread_in, uintptr_t instrumentation_exit_pc, Instrumentation* instrumentation) argument 395 Instrumentation* instrumentation = reinterpret_cast<Instrumentation*>(arg); local [all...] |
H A D | thread.cc | 1612 tlsPtr_.instrumentation_stack = new std::deque<instrumentation::InstrumentationStackFrame>; 2587 // This is a real exception: let the instrumentation know about it. 2588 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 2589 if (instrumentation->HasExceptionCaughtListeners() && 2594 instrumentation->ExceptionCaughtEvent(this, exception); 2596 // Does instrumentation need to deoptimize the stack? 2597 // Note: we do this *after* reporting the exception to instrumentation in case it 2883 for (instrumentation::InstrumentationStackFrame& frame : *GetInstrumentationStack()) {
|
H A D | debugger.cc | 59 // The key identifying the debugger to update instrumentation. 137 class DebugInstrumentationListener FINAL : public instrumentation::InstrumentationListener { 150 // We also listen to kDexPcMoved instrumentation event so we know the DexPcMoved method is 157 // We also listen to kMethodExited instrumentation event and the current instruction is a 197 // We also listen to kMethodExited instrumentation event and the current instruction is a 259 return IsListeningTo(instrumentation::Instrumentation::kDexPcMoved); 263 return IsListeningTo(instrumentation::Instrumentation::kMethodExited); 266 static bool IsListeningTo(instrumentation::Instrumentation::InstrumentationEvent event) 575 explicit UpdateEntryPointsClassVisitor(instrumentation::Instrumentation* instrumentation) argument 3106 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 3283 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 3456 instrumentation::Instrumentation* const instrumentation = member in class:art::instrumentation 3494 instrumentation::Instrumentation* const instrumentation = member in class:art::instrumentation 3531 instrumentation::Instrumentation* const instrumentation = member in class:art::instrumentation [all...] |
/art/runtime/interpreter/ |
H A D | interpreter.cc | 279 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 282 if (UNLIKELY(instrumentation->HasMethodEntryListeners())) { 283 instrumentation->MethodEnterEvent(self, shadow_frame.GetThisObject(code_item->ins_size_), 326 // Mterp does not support all instrumentation/debugging. 538 // the instrumentation. To prevent from reporting it a second time, we simply pass a 540 const instrumentation::Instrumentation* const instrumentation = member in class:art::interpreter::instrumentation 543 instrumentation);
|
H A D | interpreter_goto_table_impl.cc | 69 if (UNLIKELY(instrumentation->HasBranchListeners())) { \ 70 instrumentation->Branch(self, method, dex_pc, offset); \ 116 * In order to limit the cost of instrumentation, we have two handler tables: 118 * handling of instrumentation. 120 * instrumentation before jumping to the corresponding "normal" instruction's handler. 122 * When instrumentation is active, the interpreter uses the "alternative" handler table. Otherwise 162 // manage instrumentation before jumping to the execution handler. 163 static const void* const handlersTable[instrumentation::kNumHandlerTables][kNumPackedOpcodes] = { 195 const auto* const instrumentation = Runtime::Current()->GetInstrumentation(); local 289 if (UNLIKELY(instrumentation [all...] |
H A D | interpreter_switch_impl.cc | 34 instrumentation); \ 66 if (UNLIKELY(instrumentation->HasDexPcListeners())) { \ 67 instrumentation->DexPcMovedEvent(self, shadow_frame.GetThisObject(code_item->ins_size_), \ 74 if (UNLIKELY(instrumentation->HasBranchListeners())) { \ 75 instrumentation->Branch(self, method, dex_pc, offset); \ 111 const auto* const instrumentation = Runtime::Current()->GetInstrumentation(); local 215 if (UNLIKELY(instrumentation->HasMethodExitListeners())) { 216 instrumentation->MethodExitEvent(self, shadow_frame.GetThisObject(code_item->ins_size_), 232 if (UNLIKELY(instrumentation->HasMethodExitListeners())) { 233 instrumentation [all...] |
H A D | interpreter_common.cc | 62 // Report this field access to instrumentation if needed. 63 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 64 if (UNLIKELY(instrumentation->HasFieldReadListeners())) { 66 instrumentation->FieldReadEvent(self, this_object, shadow_frame.GetMethod(), 143 // Report this field access to instrumentation if needed. Since we only have the offset of 145 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 146 if (UNLIKELY(instrumentation->HasFieldReadListeners())) { 151 instrumentation 260 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 364 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 425 FindNextInstructionFollowingException( Thread* self, ShadowFrame& shadow_frame, uint32_t dex_pc, const instrumentation::Instrumentation* instrumentation) argument [all...] |
H A D | interpreter_common.h | 654 // TODO: Remove the InvokeVirtualOrInterface instrumentation, as it was only used by the JIT. 656 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 657 if (UNLIKELY(instrumentation->HasInvokeVirtualOrInterfaceListeners())) { 658 instrumentation->InvokeVirtualOrInterface( 700 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 701 // TODO: Remove the InvokeVirtualOrInterface instrumentation, as it was only used by the JIT. 702 if (UNLIKELY(instrumentation->HasInvokeVirtualOrInterfaceListeners())) { 703 instrumentation [all...] |
/art/runtime/interpreter/mterp/ |
H A D | mterp.cc | 147 const instrumentation::Instrumentation* const instrumentation = member in class:art::interpreter::instrumentation 149 return instrumentation->NonJitProfilingActive() || Dbg::IsDebuggerActive(); 420 const instrumentation::Instrumentation* const instrumentation = member in class:art::interpreter::instrumentation 424 instrumentation); 644 * to the full instrumentation via MterpAddHotnessBatch. Called once on entry to the method, 682 * Report a batch of hotness events to the instrumentation and then return the new
|
/art/runtime/jit/ |
H A D | jit.cc | 259 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 260 if (instrumentation->AreAllMethodsDeoptimized() || instrumentation->IsDeoptimized(method)) {
|
/art/runtime/gc/ |
H A D | heap.cc | 624 instrumentation::Instrumentation* const instrumentation = runtime->GetInstrumentation(); member in class:art::gc::instrumentation 629 instrumentation->InstrumentQuickAllocEntryPoints(); 1679 instrumentation::Instrumentation* const instrumentation = member in class:art::gc::instrumentation 1681 return instrumentation != nullptr && instrumentation->AllocEntrypointsInstrumented();
|