Hi all,
I'm doing some tuning work for Harmony running SpecJVM98.
I write a JVMTI agent to catch VMDeath event and do something at the end of 
JVM's life, but that doesn't work(the same agent work well for hotspot).

my agent likes bellow:
...
static void JNICALL
callbackVMDeath(jvmtiEnv *jvmti, JNIEnv *jni)
{
      assert(false);
printf("vm death\n");
}
JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *jvm)
{
assert(false);
printf("unload!");
}
JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved) 
 
{
...
error = jvmti->SetEventNotificationMode(JVMTI_ENABLE,JVMTI_EVENT_VM_DEATH, 
(jthread)NULL);
callbacks.VMDeath = &callbackVMDeath;
error = jvmti->SetEventCallbacks(&callbacks,(jint)sizeof(callbacks));
...
}
...
The program ends correctly. This is really strange. Can anyone try this case 
and explain for me?

Thanks a lot.

2009-11-26 



johnnylj98 

Reply via email to