Lines Matching refs:thread

40 #include "thread.h"
171 static void InstrumentationInstallStack(Thread* thread, void* arg)
281 thread->GetThreadName(thread_name);
288 InstallStackVisitor visitor(thread, context.get(), instrumentation_exit_pc);
290 CHECK_EQ(visitor.dex_pcs_.size(), thread->GetInstrumentationStack()->size());
293 // Create method enter events for all methods currently on the thread's stack. We only do this
296 for (auto isi = thread->GetInstrumentationStack()->rbegin(),
297 end = thread->GetInstrumentationStack()->rend(); isi != end; ++isi) {
299 instrumentation->MethodEnterEvent(thread, (*ssi).this_object_, (*ssi).method_, 0);
305 instrumentation->MethodEnterEvent(thread, (*isi).this_object_, (*isi).method_, dex_pc);
309 thread->VerifyStack();
312 void Instrumentation::InstrumentThreadStack(Thread* thread) {
314 InstrumentationInstallStack(thread, this);
318 static void InstrumentationRestoreStack(Thread* thread, void* arg)
390 thread->GetThreadName(thread_name);
393 std::deque<instrumentation::InstrumentationStackFrame>* stack = thread->GetInstrumentationStack();
398 RestoreStackVisitor visitor(thread, instrumentation_exit_pc, instrumentation);
632 static void ResetQuickAllocEntryPointsForThread(Thread* thread, void* arg ATTRIBUTE_UNUSED) {
633 thread->ResetQuickAllocEntryPointsForThread();
812 // If there is no deoptimized method left, we can restore the stack of each thread.
905 void Instrumentation::MethodEnterEventImpl(Thread* thread, mirror::Object* this_object,
911 listener->MethodEntered(thread, this_object, method, dex_pc);
917 void Instrumentation::MethodExitEventImpl(Thread* thread, mirror::Object* this_object,
923 listener->MethodExited(thread, this_object, method, dex_pc, return_value);
929 void Instrumentation::MethodUnwindEvent(Thread* thread, mirror::Object* this_object,
935 listener->MethodUnwind(thread, this_object, method, dex_pc);
941 void Instrumentation::DexPcMovedEventImpl(Thread* thread, mirror::Object* this_object,
946 listener->DexPcMoved(thread, this_object, method, dex_pc);
951 void Instrumentation::BranchImpl(Thread* thread,
957 listener->Branch(thread, method, dex_pc, offset);
962 void Instrumentation::InvokeVirtualOrInterfaceImpl(Thread* thread,
967 // We cannot have thread suspension since that would cause the this_object parameter to
969 ScopedAssertNoThreadSuspension ants(thread, __FUNCTION__);
972 listener->InvokeVirtualOrInterface(thread, this_object, caller, dex_pc, callee);
977 void Instrumentation::FieldReadEventImpl(Thread* thread, mirror::Object* this_object,
982 listener->FieldRead(thread, this_object, method, dex_pc, field);
987 void Instrumentation::FieldWriteEventImpl(Thread* thread, mirror::Object* this_object,
992 listener->FieldWritten(thread, this_object, method, dex_pc, field, field_value);
997 void Instrumentation::ExceptionCaughtEvent(Thread* thread,
1000 DCHECK_EQ(thread->GetException(), exception_object);
1001 thread->ClearException();
1004 listener->ExceptionCaught(thread, exception_object);
1007 thread->SetException(exception_object);