/art/runtime/ |
H A D | common_dex_operations.h | 29 #include "instrumentation.h" 96 // Report this field access to instrumentation if needed. 97 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 98 if (UNLIKELY(instrumentation->HasFieldReadListeners())) { 106 instrumentation->FieldReadEvent(self, 154 // Report this field access to instrumentation if needed. Since we only have the offset of 156 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 157 if (UNLIKELY(instrumentation [all...] |
H A D | instrumentation.h | 45 namespace instrumentation { namespace in namespace:art 49 kMainHandlerTable = 0, // Main handler table: no suspend check, no instrumentation. 50 kAlternativeHandlerTable = 1, // Alternative handler table: suspend check and/or instrumentation 154 // either return or exceptions. Normally instrumentation listeners should ensure that there are 162 // typical use for instrumentation is for profiling and debugging. Instrumentation may add stubs 182 kInstrumentNothing, // execute without instrumentation 183 kInstrumentWithInstrumentationStubs, // execute with instrumentation entry/exit stubs 189 // Add a listener to be notified of the masked together sent of instrumentation events. This 196 // Removes a listener possibly removing instrumentation stubs. 249 // Enable method tracing by installing instrumentation entr [all...] |
H A D | instrumentation_test.cc | 17 #include "instrumentation.h" 37 namespace instrumentation { namespace in namespace:art 39 class TestInstrumentationListener FINAL : public instrumentation::InstrumentationListener { 205 instrumentation::Instrumentation* instr = Runtime::Current()->GetInstrumentation(); 232 instrumentation::Instrumentation* instr = Runtime::Current()->GetInstrumentation(); 236 ScopedSuspendAll ssa("Add instrumentation listener"); 260 ScopedSuspendAll ssa("Remove instrumentation listener"); 281 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local 288 instrumentation 297 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local 312 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local 327 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local 342 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local 354 instrumentation::Instrumentation* instrumentation = runtime->GetInstrumentation(); local [all...] |
H A D | quick_exception_handler.cc | 566 // At this point, the instrumentation stack has been updated. We need to install 567 // the real return pc on stack, in case instrumentation stub is stored there, 585 // Unwinds all instrumentation stack frame prior to catch handler or upcall. 633 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 635 return_pc = instrumentation->PopMethodForUnwind(self_, is_deoptimization_);
|
H A D | instrumentation.cc | 17 #include "instrumentation.h" 50 namespace instrumentation { namespace in namespace:art 85 explicit InstallStubsClassVisitor(Instrumentation* instrumentation) argument 86 : instrumentation_(instrumentation) {} 184 // class, all its static methods code will be set to the instrumentation entry point. 188 // Oat code should not be used. Don't install instrumentation stub and 189 // use interpreter for instrumentation. 204 // Places the instrumentation exit pc as the return PC for every quick frame. This also allows 206 // Since we may already have done this previously, we need to push new instrumentation frame before 207 // existing instrumentation frame 338 Instrumentation* instrumentation = reinterpret_cast<Instrumentation*>(arg); local 376 RestoreStackVisitor(Thread* thread_in, uintptr_t instrumentation_exit_pc, Instrumentation* instrumentation) argument 449 Instrumentation* instrumentation = reinterpret_cast<Instrumentation*>(arg); local [all...] |
H A D | runtime.cc | 91 #include "instrumentation.h" 405 // accessing the instrumentation when we delete it. 2588 explicit UpdateEntryPointsClassVisitor(instrumentation::Instrumentation* instrumentation) argument 2589 : instrumentation_(instrumentation) {} 2605 instrumentation::Instrumentation* const instrumentation_;
|
H A D | jni_internal.cc | 99 // Helpers to call instrumentation functions for fields. These take jobjects so we don't need to set 101 // possible there will be a pending exception if the instrumentation happens to throw one. 105 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 106 if (UNLIKELY(instrumentation->HasFieldWriteListeners())) { 120 instrumentation->FieldWriteEvent(self, 132 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 133 if (UNLIKELY(instrumentation->HasFieldWriteListeners())) { 145 instrumentation 156 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local [all...] |
H A D | thread.cc | 2102 tlsPtr_.instrumentation_stack = new std::deque<instrumentation::InstrumentationStackFrame>; 3341 // This is a real exception: let the instrumentation know about it. 3342 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 3343 if (instrumentation->HasExceptionThrownListeners() && 3348 instrumentation->ExceptionThrownEvent(this, exception.Ptr()); 3350 // Does instrumentation need to deoptimize the stack? 3351 // Note: we do this *after* reporting the exception to instrumentation in case it 3805 for (instrumentation::InstrumentationStackFrame& frame : *GetInstrumentationStack()) {
|
H A D | debugger.cc | 77 // The key identifying the debugger to update instrumentation. 141 class DebugInstrumentationListener FINAL : public instrumentation::InstrumentationListener { 156 // We also listen to kDexPcMoved instrumentation event so we know the DexPcMoved method is 163 // We also listen to kMethodExited instrumentation event and the current instruction is a 210 // We also listen to kMethodExited instrumentation event and the current instruction is a 288 return IsListeningTo(instrumentation::Instrumentation::kDexPcMoved); 292 return IsListeningTo(instrumentation::Instrumentation::kMethodExited); 295 static bool IsListeningTo(instrumentation::Instrumentation::InstrumentationEvent event) 2944 // local variable(s). To achieve this, we install instrumentation exit stub on each method of the 3215 case instrumentation 3234 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 3411 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 3586 instrumentation::Instrumentation* const instrumentation = member in class:art::instrumentation 3624 instrumentation::Instrumentation* const instrumentation = member in class:art::instrumentation 3661 instrumentation::Instrumentation* const instrumentation = member in class:art::instrumentation [all...] |
/art/openjdkjvmti/ |
H A D | deopt_manager.cc | 204 auto instrumentation = art::Runtime::Current()->GetInstrumentation(); local 205 if (instrumentation->IsForcedInterpretOnly()) { 240 auto instrumentation = art::Runtime::Current()->GetInstrumentation(); local 241 if (UNLIKELY(instrumentation->IsForcedInterpretOnly())) {
|
/art/runtime/interpreter/ |
H A D | interpreter.cc | 253 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 256 if (UNLIKELY(instrumentation->HasMethodEntryListeners())) { 257 instrumentation->MethodEnterEvent(self, 262 instrumentation->MethodUnwindEvent(self, 314 // Mterp does not support all instrumentation/debugging. 507 // the instrumentation. To prevent from reporting it a second time, we simply pass a 509 const instrumentation::Instrumentation* const instrumentation = member in class:art::interpreter::instrumentation 512 self, *shadow_frame, instrumentation) [all...] |
H A D | interpreter_common.h | 124 // mterp. Access checks and instrumentation other than jit profiling are not supported, but does 198 // TODO: Remove the InvokeVirtualOrInterface instrumentation, as it was only used by the JIT. 200 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 201 if (UNLIKELY(instrumentation->HasInvokeVirtualOrInterfaceListeners())) { 202 instrumentation->InvokeVirtualOrInterface( 287 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 288 // TODO: Remove the InvokeVirtualOrInterface instrumentation, as it was only used by the JIT. 289 if (UNLIKELY(instrumentation [all...] |
H A D | interpreter_switch_impl.cc | 51 #define HANDLE_PENDING_EXCEPTION() HANDLE_PENDING_EXCEPTION_WITH_INSTRUMENTATION(instrumentation) 70 if (UNLIKELY(instrumentation->HasDexPcListeners()) && \ 75 instrumentation, \ 87 if (UNLIKELY(instrumentation->HasBranchListeners())) { \ 88 instrumentation->Branch(self, shadow_frame.GetMethod(), dex_pc, offset); \ 138 const instrumentation::Instrumentation* instrumentation, 141 DCHECK(instrumentation->HasDexPcListeners()); 148 instrumentation->DexPcMovedEvent(self, 166 static bool NeedsMethodExitEvent(const instrumentation 213 const auto* const instrumentation = Runtime::Current()->GetInstrumentation(); local [all...] |
H A D | interpreter_common.cc | 162 // Report this field access to instrumentation if needed. Since we only have the offset of 164 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 165 if (UNLIKELY(instrumentation->HasFieldReadListeners())) { 172 // Save obj in case the instrumentation event has thread suspension. 174 instrumentation->FieldReadEvent(self, 346 // Report this field modification to instrumentation if needed. Since we only have the offset of 348 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 349 if (UNLIKELY(instrumentation 429 MoveToExceptionHandler(Thread* self, ShadowFrame& shadow_frame, const instrumentation::Instrumentation* instrumentation) argument [all...] |
/art/runtime/interpreter/mterp/ |
H A D | mterp.cc | 151 const instrumentation::Instrumentation* const instrumentation = runtime->GetInstrumentation(); member in class:art::interpreter::instrumentation 152 return instrumentation->NonJitProfilingActive() || 573 const instrumentation::Instrumentation* const instrumentation = member in class:art::interpreter::instrumentation 575 return MoveToExceptionHandler(self, *shadow_frame, instrumentation); 970 * to the full instrumentation via MterpAddHotnessBatch. Called once on entry to the method, 1010 * Report a batch of hotness events to the instrumentation and then return the new
|
/art/runtime/jit/ |
H A D | jit.cc | 288 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 289 if (instrumentation->AreAllMethodsDeoptimized() || instrumentation->IsDeoptimized(method)) {
|
H A D | jit_code_cache.cc | 789 // We need to update the entry point in the runnable state for the instrumentation. 832 instrumentation::Instrumentation* instrum = Runtime::Current()->GetInstrumentation(); 1114 // The stack walking code queries the side instrumentation stack if it 1115 // sees an instrumentation exit pc, so the JIT code of methods in that stack 1117 for (const instrumentation::InstrumentationStackFrame& frame 1278 // the class unsafe. We know it is OK to bypass the instrumentation as we've just 1726 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 1730 instrumentation->UpdateNativeMethodsCodeToJitCode(m, entrypoint);
|
/art/runtime/entrypoints/quick/ |
H A D | quick_trampoline_entrypoints.cc | 34 #include "instrumentation.h" 836 // If caller_pc is the instrumentation exit stub, the stub will check to see if deoptimization 1116 instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); local 1117 if (instrumentation->IsDeoptimized(method)) { 1120 result = instrumentation->GetQuickCodeFor(method, kRuntimePointerSize); 1134 instrumentation->PushInstrumentationStackFrame(self, 1157 CHECK(!self->IsExceptionPending()) << "Enter instrumentation exit stub with pending exception " 1170 instrumentation::Instrumentation* instrumentation local [all...] |
/art/runtime/gc/ |
H A D | heap.cc | 626 instrumentation::Instrumentation* const instrumentation = runtime->GetInstrumentation(); member in class:art::gc::instrumentation 631 instrumentation->InstrumentQuickAllocEntryPoints(); 1566 instrumentation::Instrumentation* const instrumentation = member in class:art::gc::instrumentation 1568 return instrumentation != nullptr && instrumentation->AllocEntrypointsInstrumented();
|