155 Agent_OnAttach(JavaVM *vm, char *optionsString, void *reserved)
156 #endif
157 {
158 jvmtiEventCallbacks eventCallbacks;
159 jvmtiEnv* jvmti;
160 JNIEnv* jni;
161
162 if (!NSK_VERIFY((options = (Options*) nsk_aod_createOptions(optionsString)) != NULL))
163 return JNI_ERR;
164
165 agentName = nsk_aod_getOptionValue(options, NSK_AOD_AGENT_NAME_OPTION);
166
167 if ((jni = (JNIEnv*) nsk_aod_createJNIEnv(vm)) == NULL)
168 return JNI_ERR;
169
170 if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL))
171 return JNI_ERR;
172
173 memset(&eventCallbacks,0, sizeof(eventCallbacks));
174 eventCallbacks.ThreadStart = threadStartHandler;
175 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) {
176 return JNI_ERR;
177 }
178
179 if (!(nsk_jvmti_aod_enableEvent(jvmti, JVMTI_EVENT_THREAD_START))) {
180 return JNI_ERR;
181 }
182
183 NSK_DISPLAY1("%s: initialization was done\n", agentName);
184
185 if (!NSK_VERIFY(nsk_aod_agentLoaded(jni, agentName)))
186 return JNI_ERR;
187
188 return JNI_OK;
189 }
190
191 }
|
155 Agent_OnAttach(JavaVM *vm, char *optionsString, void *reserved)
156 #endif
157 {
158 jvmtiEventCallbacks eventCallbacks;
159 jvmtiEnv* jvmti;
160 JNIEnv* jni;
161
162 if (!NSK_VERIFY((options = (Options*) nsk_aod_createOptions(optionsString)) != NULL))
163 return JNI_ERR;
164
165 agentName = nsk_aod_getOptionValue(options, NSK_AOD_AGENT_NAME_OPTION);
166
167 if ((jni = (JNIEnv*) nsk_aod_createJNIEnv(vm)) == NULL)
168 return JNI_ERR;
169
170 if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL))
171 return JNI_ERR;
172
173 memset(&eventCallbacks,0, sizeof(eventCallbacks));
174 eventCallbacks.ThreadStart = threadStartHandler;
175 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) {
176 return JNI_ERR;
177 }
178
179 if (!(nsk_jvmti_aod_enableEvent(jvmti, JVMTI_EVENT_THREAD_START))) {
180 return JNI_ERR;
181 }
182
183 NSK_DISPLAY1("%s: initialization was done\n", agentName);
184
185 if (!NSK_VERIFY(nsk_aod_agentLoaded(jni, agentName)))
186 return JNI_ERR;
187
188 return JNI_OK;
189 }
190
191 }
|