Lines Matching refs:Instrumentation
48 namespace instrumentation {
52 kMainHandlerTable = 0, // Main handler table: no suspend check, no instrumentation.
53 kAlternativeHandlerTable = 1, // Alternative handler table: suspend check and/or instrumentation
63 // Instrumentation event listener API. Registered listeners will get the appropriate call back for
149 // either return or exceptions. Normally instrumentation listeners should ensure that there are
156 class Instrumentation;
157 // A helper to send instrumentation events while popping the stack in a safe way.
171 Instrumentation* instrumentation_;
175 // Instrumentation is a catch-all for when extra information is required from the runtime. The
176 // typical use for instrumentation is for profiling and debugging. Instrumentation may add stubs
179 class Instrumentation {
195 kInstrumentNothing, // execute without instrumentation
196 kInstrumentWithInstrumentationStubs, // execute with instrumentation entry/exit stubs
200 Instrumentation();
202 // Add a listener to be notified of the masked together sent of instrumentation events. This
209 // Removes a listener possibly removing instrumentation stubs.
262 // Enable method tracing by installing instrumentation entry/exit stubs or interpreter.
270 // Disable method tracing by uninstalling instrumentation entry/exit stubs or interpreter.
313 // will short-cut to GetCode if instrumentation and static method resolution stubs aren't
480 // Called when an instrumented method is exited. Removes the pushed instrumentation frame
490 // Pops nframes instrumentation frames from the current thread. Returns the return pc for the last
491 // instrumentation frame that's popped.
502 // Sets up instrumentation to allow single thread deoptimization using ForceInterpreterCount.
509 // Install instrumentation exit stub on every method of the stack of the given thread.
529 // Returns true if moving to the given instrumentation level requires the installation of stubs.
533 // Does the job of installing or removing instrumentation code within methods.
534 // In order to support multiple clients using instrumentation at the same time,
536 // instrumentation level it needs. Therefore the current instrumentation level
537 // becomes the highest instrumentation level required by a client.
620 // Have we hijacked ArtMethod::code_ so that it calls instrumentation/interpreter code?
672 // Contains the instrumentation level required by each client of the instrumentation identified
683 // Note that mutators cannot make a copy of these lists before iterating, as the instrumentation
716 // If we can use instrumentation trampolines. After the first time we instrument something with
722 friend class InstrumentationStackPopper; // For popping instrumentation frames.
724 DISALLOW_COPY_AND_ASSIGN(Instrumentation);
726 std::ostream& operator<<(std::ostream& os, const Instrumentation::InstrumentationEvent& rhs);
727 std::ostream& operator<<(std::ostream& os, const Instrumentation::InstrumentationLevel& rhs);
729 // An element in the instrumentation side stack maintained in art::Thread.
752 } // namespace instrumentation