Lines Matching refs:jvmti

79 static jint SetupJvmtiEnv(JavaVM* vm, jvmtiEnv** jvmti) {  in SetupJvmtiEnv()  argument
81 res = vm->GetEnv(reinterpret_cast<void**>(jvmti), JVMTI_VERSION_1_1); in SetupJvmtiEnv()
83 if (res != JNI_OK || *jvmti == nullptr) { in SetupJvmtiEnv()
85 return vm->GetEnv(reinterpret_cast<void**>(jvmti), kArtTiVersion); in SetupJvmtiEnv()
94 static void DataDumpRequestCb(jvmtiEnv* jvmti) { in DataDumpRequestCb() argument
103 CHECK_JVMTI(jvmti->GetEnvironmentLocalStorage(reinterpret_cast<void**>(&list))); in DataDumpRequestCb()
109 CHECK_JVMTI(jvmti->IterateOverInstancesOfClass( in DataDumpRequestCb()
123 CHECK_JVMTI(jvmti->GetObjectsWithTags(1, &tag, &obj_len, &obj_list, nullptr)); in DataDumpRequestCb()
140 CHECK_JVMTI(jvmti->SetTag(obj.get(), referenced_object_tag)); in DataDumpRequestCb()
145 CHECK_JVMTI(jvmti->GetClassSignature(obj_klass.get(), &class_name_tmp, nullptr)); in DataDumpRequestCb()
146 CHECK_JVMTI(jvmti->GetObjectSize(obj.get(), &size)); in DataDumpRequestCb()
148 CHECK_JVMTI(jvmti->Deallocate(reinterpret_cast<unsigned char*>(class_name_tmp))); in DataDumpRequestCb()
159 CHECK_JVMTI(jvmti->GetObjectsWithTags(1, &referenced_object_tag, &ref_len, &ref_list, nullptr)); in DataDumpRequestCb()
167 CHECK_JVMTI(jvmti->GetClassSignature(obj_klass.get(), &class_name_tmp, nullptr)); in DataDumpRequestCb()
168 CHECK_JVMTI(jvmti->GetObjectSize(obj.get(), &size)); in DataDumpRequestCb()
170 CHECK_JVMTI(jvmti->Deallocate(reinterpret_cast<unsigned char*>(class_name_tmp))); in DataDumpRequestCb()
179 CHECK_JVMTI(jvmti->GetFieldName(klass, field, &field_name, &field_sig, nullptr)); in DataDumpRequestCb()
180 CHECK_JVMTI(jvmti->GetClassSignature(klass, &field_class_name, nullptr)); in DataDumpRequestCb()
192 CHECK_JVMTI(jvmti->Deallocate(reinterpret_cast<unsigned char*>(field_name))); in DataDumpRequestCb()
193 CHECK_JVMTI(jvmti->Deallocate(reinterpret_cast<unsigned char*>(field_sig))); in DataDumpRequestCb()
194 CHECK_JVMTI(jvmti->Deallocate(reinterpret_cast<unsigned char*>(field_class_name))); in DataDumpRequestCb()
198 static void VMDeathCb(jvmtiEnv* jvmti, JNIEnv* env ATTRIBUTE_UNUSED) { in VMDeathCb() argument
199 DataDumpRequestCb(jvmti); in VMDeathCb()
201 CHECK_JVMTI(jvmti->GetEnvironmentLocalStorage(reinterpret_cast<void**>(&list))); in VMDeathCb()
205 static void CreateFieldList(jvmtiEnv* jvmti, JNIEnv* env, const std::string& args) { in CreateFieldList() argument
207 CHECK_JVMTI(jvmti->Allocate(sizeof(*list), reinterpret_cast<unsigned char**>(&list))); in CreateFieldList()
211 CHECK_JVMTI(jvmti->SetEnvironmentLocalStorage(list)); in CreateFieldList()
214 static void VMInitCb(jvmtiEnv* jvmti, JNIEnv* env, jobject thr ATTRIBUTE_UNUSED) { in VMInitCb() argument
216 CHECK_JVMTI(jvmti->GetEnvironmentLocalStorage(reinterpret_cast<void**>(&args))); in VMInitCb()
217 CHECK_JVMTI(jvmti->SetEnvironmentLocalStorage(nullptr)); in VMInitCb()
218 CreateFieldList(jvmti, env, args); in VMInitCb()
219 CHECK_JVMTI(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, nullptr)); in VMInitCb()
221 jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_DATA_DUMP_REQUEST, nullptr)); in VMInitCb()
222 CHECK_JVMTI(jvmti->Deallocate(reinterpret_cast<unsigned char*>(args))); in VMInitCb()
228 jvmtiEnv* jvmti = nullptr; in AgentStart() local
229 if (SetupJvmtiEnv(vm, &jvmti) != JNI_OK) { in AgentStart()
236 CHECK_JVMTI(jvmti->AddCapabilities(&caps)); in AgentStart()
242 CHECK_JVMTI(jvmti->SetEventCallbacks(&cb, sizeof(cb))); in AgentStart()
245 CHECK_JVMTI(jvmti->Allocate(strlen(options) + 1, &ptr)); in AgentStart()
247 CHECK_JVMTI(jvmti->SetEnvironmentLocalStorage(ptr)); in AgentStart()
248 CHECK_JVMTI(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, nullptr)); in AgentStart()
252 CreateFieldList(jvmti, env, options); in AgentStart()
253 CHECK_JVMTI(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, nullptr)); in AgentStart()
255 jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_DATA_DUMP_REQUEST, nullptr)); in AgentStart()