123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579 |
- #include <gcj/cni.h>
- #include <jvm.h>
- #include <jvmti.h>
- #include <stdio.h>
- #include "jvmti-int.h"
- #include "events.h"
- void
- print_events ()
- {
- #define DO(X) \
- do \
- { \
- if (JVMTI_REQUESTED_EVENT (X)) \
- printf (#X ","); \
- } \
- while (0)
- printf ("RequestedEvents: ");
- DO (VMInit);
- DO (VMDeath);
- DO (ThreadStart);
- DO (ThreadEnd);
- DO (ClassFileLoadHook);
- DO (ClassLoad);
- DO (ClassPrepare);
- DO (VMStart);
- DO (Exception);
- DO (ExceptionCatch);
- DO (SingleStep);
- DO (FramePop);
- DO (Breakpoint);
- DO (FieldAccess);
- DO (FieldModification);
- DO (MethodEntry);
- DO (MethodExit);
- DO (NativeMethodBind);
- DO (CompiledMethodLoad);
- DO (CompiledMethodUnload);
- DO (DynamicCodeGenerated);
- DO (DataDumpRequest);
- DO (MonitorWait);
- DO (MonitorWaited);
- DO (MonitorContendedEnter);
- DO (MonitorContendedEntered);
- DO (GarbageCollectionStart);
- DO (GarbageCollectionFinish);
- DO (ObjectFree);
- DO (VMObjectAlloc);
- printf ("\n");
- #undef DO
- }
- static void
- VMInitCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread)
- {
- printf ("VMInitCB jni_env=%#llx thread=%#llx\n",
- (unsigned long long) jni_env, (unsigned long long) thread);
- }
- static void
- VMDeathCB (jvmtiEnv *env, JNIEnv *jni_env)
- {
- printf ("VMDeathCB jni_env=%#llx\n", (unsigned long long) jni_env);
- }
- static void
- ThreadStartCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread)
- {
- printf ("ThreadStartCB jni_env=%#llx thread=%#llx\n",
- (unsigned long long) jni_env, (unsigned long long) thread);
- }
- static void
- ThreadEndCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread)
- {
- printf ("ThreadEndCB jni_env=%#llx thread=%#llx\n",
- (unsigned long long) jni_env, (unsigned long long) thread);
- }
- static void
- ClassFileLoadHookCB (jvmtiEnv *env, JNIEnv *jni_env,
- jclass class_being_redefined, jobject loader,
- const char *name, jobject protection_domain,
- jint class_data_len, const unsigned char *class_data,
- jint *new_class_data_len, unsigned char **new_class_data)
- {
- printf ("ClassFileLoadHookCB jni_env=%#llx class_being_redefined=%#llx"
- " loader=%#llx", (unsigned long long) jni_env, (unsigned long long)
- class_being_redefined, (unsigned long long) loader);
- printf (" name=%s protection_domain=%#llx class_data_len=%d class_data=%#llx",
- name, (unsigned long long) protection_domain, (int) class_data_len,
- (unsigned long long) class_data);
- printf (" new_class_data_len=%#llx new_class_data=%#llx\n",
- (unsigned long long) new_class_data_len, (unsigned long long)
- new_class_data);
- }
- static void
- ClassLoadCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jclass klass)
- {
- printf ("ClassLoadCB jni_env=%#llx thread=%#llx klass=%#llx\n",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) klass);
- }
- static void
- ClassPrepareCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jclass klass)
- {
- printf ("ClassPrepareCB jni_env=%#llx thread=%#llx klass=%#llx\n",
- (unsigned long long)jni_env, (unsigned long long) thread,
- (unsigned long long) klass);
- }
- static void
- VMStartCB (jvmtiEnv *env, JNIEnv *jni_env)
- {
- printf ("VMStartCB jni_env=%#llx\n", (unsigned long long) jni_env);
- }
- static void
- ExceptionCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jlocation location, jobject exception, jmethodID catch_method,
- jlocation catch_location)
- {
- printf ("ExceptionCB jni_env=%#llx thread=%#llx method=%#llx location=%#llx",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) method, (unsigned long long) location);
- printf (" exception=%#llx catch_method=%#llx catch_location=%#llx\n",
- (unsigned long long) exception, (unsigned long long) catch_method,
- (unsigned long long) catch_location);
- }
- static void
- ExceptionCatchCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
- jmethodID method, jlocation location, jobject exception)
- {
- printf ("ExceptionCatchCB jni_env=%#llx thread=%#llx method=%#llx"
- " location=%#llx",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) method, (unsigned long long) location);
- printf (" exception=%#llx\n", (unsigned long long) exception);
- }
- static void
- SingleStepCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jlocation location)
- {
- printf ("SingleStepCB jni_env=%#llx thread=%#llx method=%#llx"
- " location=%#llx\n",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) method, (unsigned long long) location);
- }
- static void
- FramePopCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jboolean was_popped_by_exception)
- {
- printf ("FramePopCB jni_env=%#llx thread=%#llx method=%#llx",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) method);
- printf (" was_pooped_by_exception=%d\n", (was_popped_by_exception ?
- 1 : 0));
- }
- static void
- BreakpointCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jlocation location)
- {
- printf ("BreakpointCB jni_env=%#llx thread=%#llx method=%#llx"
- " location=%#llx\n", (unsigned long long) jni_env,
- (unsigned long long) thread, (unsigned long long) method,
- (unsigned long long) location);
- }
- static void
- FieldAccessCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
- jmethodID method, jlocation location, jclass field_klass,
- jobject object, jfieldID field)
- {
- printf ("FieldAccessCB jni_env=%#llx thread=%#llx method=%#llx"
- " location=%#llx", (unsigned long long) jni_env, (unsigned long long)
- thread, (unsigned long long) method, (unsigned long long) location);
- printf (" field_klass=%#llx object=%#llx field=%#llx\n", (unsigned long long)
- field_klass, (unsigned long long) object, (unsigned long long) field);
- }
- static void
- FieldModificationCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
- jmethodID method, jlocation location, jclass field_klass,
- jobject object, jfieldID field, char signature_type,
- jvalue new_value)
- {
- printf ("FieldModificationCB jni_env=%#llx thread=%#llx method=%#llx"
- " location=%#llx", (unsigned long long) jni_env, (unsigned long long)
- thread, (unsigned long long) method, (unsigned long long) location);
- printf (" field_klass=%#llx object=%#llx field=%#llx signature_type=%c",
- (unsigned long long) field_klass, (unsigned long long) object,
- (unsigned long long) field, signature_type);
- printf (" new_value=%#llx\n", (unsigned long long) new_value.l);
- }
- static void
- MethodEntryCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
- jmethodID method)
- {
- printf ("MethodEntryCB jni_env=%#llx thread=%#llx method=%#llx\n",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) method);
- }
- static void
- MethodExitCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
- jmethodID method, jboolean was_popped_by_exception,
- jvalue return_value)
- {
- printf ("MethodExitCB jni_env=%#llx thread=%#llx method=%#llx",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) method);
- printf (" was_popped_by_exception=%d return_value=%d\n",
- (was_popped_by_exception) ? 1 : 0, (int) return_value.i);
- }
- static void
- NativeMethodBindCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
- jmethodID method, void *address, void **new_address_ptr)
- {
- printf ("NativeMethodBindCB jni_env=%#llx thread=%#llx method=%#llx",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) method);
- printf (" address=%#llx new_address_ptr=%#llx\n", (unsigned long long)
- address, (unsigned long long) new_address_ptr);
- }
- static void
- CompiledMethodLoadCB (jvmtiEnv *env, jmethodID method, jint code_size,
- const void *code_addr, jint map_length,
- const jvmtiAddrLocationMap *map,
- const void *compile_info)
- {
- printf ("CompiledMethodLoadCB method=%#llx code_size=%#llx code_addr=%#llx",
- (unsigned long long) method, (unsigned long long) code_size,
- (unsigned long long) code_addr);
- printf (" map_length=%d map=%#llx compile_info=%#llx\n", (int) map_length,
- (unsigned long long) map, (unsigned long long) compile_info);
- }
- static void
- CompiledMethodUnloadCB (jvmtiEnv *env, jmethodID method, const void *code_addr)
- {
- printf ("CompiledMethodUnloadCB method=%#llx code_addr=%#llx\n",
- (unsigned long long) method, (unsigned long long) code_addr);
- }
- static void
- DynamicCodeGeneratedCB (jvmtiEnv *env, const char *name, const void *address,
- jint length)
- {
- printf ("DynamicCodeGeneratedCB name=%s address=%#llx length=%d\n", name,
- (unsigned long long) address, (int) length);
- }
- static void
- DataDumpRequestCB (jvmtiEnv *env)
- {
- printf ("DataDumpRequestCB\n");
- }
- static void
- MonitorWaitCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jobject object,
- jlong timeout)
- {
- printf ("MonitorWaitCB jni_env=%#llx thread=%#llx object=%#llx timeout=%ld\n",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) object, (long) timeout);
- }
- static void
- MonitorWaitedCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
- jobject object, jboolean timed_out)
- {
- printf ("MonitorWaitedCB jni_env=%#llx thread=%#llx object=%#llx"
- " timed_out=%d\n", (unsigned long long) jni_env, (unsigned long long)
- thread, (unsigned long long) object, (timed_out) ? 1 : 0);
- }
- static void
- MonitorContendedEnterCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
- jobject object)
- {
- printf ("MonitorContendedEnterCB jni_env=%#llx thread=%#llx object=%#llx\n",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) object);
- }
- static void
- MonitorContendedEnteredCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
- jobject object)
- {
- printf ("MonitorContendedEnteredCB jni_env=%#llx thread=%#llx object=%#llx\n",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) object);
- }
- static void
- GarbageCollectionStartCB (jvmtiEnv *env)
- {
- printf ("GarbageCollectionStartCB\n");
- }
- static void
- GarbageCollectionFinishCB (jvmtiEnv *env)
- {
- printf ("GarbageCollectionFinishCB\n");
- }
- static void
- ObjectFreeCB (jvmtiEnv *env, jlong tag)
- {
- printf ("ObjectFreeCB tag=%ld\n", (long) tag);
- }
- static void
- VMObjectAllocCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
- jobject object, jclass object_klass, jlong size)
- {
- printf ("VMObjectAllocCB jni_env=%#llx thread=%#llx object=%#llx",
- (unsigned long long) jni_env, (unsigned long long) thread,
- (unsigned long long) object);
- printf (" object_klass=%#llx size=%ld\n", (unsigned long long) object_klass,
- (long) size);
- }
- static void
- do_enable_tests ()
- {
- printf ("- enable tests -\n");
- JavaVM *vm = _Jv_GetJavaVM ();
- jvmtiEnv *env[3];
- int i;
- for (i = 0; i < 3; ++i)
- {
- vm->GetEnv (reinterpret_cast<void **> (&env[i]), JVMTI_VERSION_1_0);
- printf ("created JVMTI environment #%d\n", i);
- }
- jvmtiEventCallbacks callbacks;
- memset (&callbacks, 0, sizeof (jvmtiEventCallbacks));
- printf ("setting callbacks for envs\n");
- callbacks.VMInit = VMInitCB;
- env[0]->SetEventCallbacks (&callbacks, sizeof (callbacks));
- callbacks.VMDeath = VMDeathCB;
- env[1]->SetEventCallbacks (&callbacks, sizeof (callbacks));
- callbacks.ThreadEnd = ThreadEndCB;
- env[2]->SetEventCallbacks (&callbacks, sizeof (callbacks));
- print_events ();
- printf ("enable VM_INIT for env0, env1, env2\n");
- env[0]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
- env[1]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
- env[2]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
- print_events ();
- printf ("enable VM_DEATH for env1,env2\n");
- env[1]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
- env[2]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
- print_events ();
- /* Used to use a non-NULL event thread, but that causes problems
- when SetEventNotificationMode tries to validate the thread. */
- printf ("enable THREAD_END for env2\n");
- env[2]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_THREAD_END,
- NULL);
- print_events ();
- printf ("disposing of env1\n");
- env[1]->DisposeEnvironment ();
- print_events ();
- printf ("disposing of env0\n");
- env[0]->DisposeEnvironment ();
- print_events ();
- printf ("disable VMInit in env2\n");
- env[2]->SetEventNotificationMode (JVMTI_DISABLE, JVMTI_EVENT_VM_INIT, NULL);
- print_events ();
- printf ("clear VMDeath callback in env2\n");
- callbacks.VMDeath = NULL;
- env[2]->SetEventCallbacks (&callbacks, sizeof (callbacks));
- print_events ();
- printf ("sending VMInit\n");
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_INIT, (jthread) 0x1234,
- (JNIEnv *) 0x5678);
- printf ("sending ThreadEnd\n");
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, (jthread) 0x1234,
- (JNIEnv *) 0x5678);
- /* See comment above re: SetEventNotificationMode and validity
- checking
- printf ("sending ThreadEnd (no match)\n");
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, (jthread) 0x4321,
- (JNIEnv *) 0x5678);
- */
- printf ("sending VMDeath\n");
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_DEATH, (jthread) NULL,
- (JNIEnv *) 0x5678);
- printf ("disposing of env2\n");
- env[2]->DisposeEnvironment ();
- print_events ();
- }
- static void
- do_callback_arg_tests ()
- {
- printf ("- callback arg tests -\n");
- JavaVM *vm = _Jv_GetJavaVM ();
- jvmtiEnv *env;
- vm->GetEnv (reinterpret_cast<void **> (&env), JVMTI_VERSION_1_0);
- // Define all the callbacks
- #define DEFINE(Event) callbacks.Event = Event ## CB;
- jvmtiEventCallbacks callbacks;
- DEFINE(VMInit);
- DEFINE(VMDeath);
- DEFINE(ThreadStart);
- DEFINE(ThreadEnd);
- DEFINE(ClassFileLoadHook);
- DEFINE(ClassLoad);
- DEFINE(ClassPrepare);
- DEFINE(VMStart);
- DEFINE(Exception);
- DEFINE(ExceptionCatch);
- DEFINE(SingleStep);
- DEFINE(FramePop);
- DEFINE(Breakpoint);
- DEFINE(FieldAccess);
- DEFINE(FieldModification);
- DEFINE(MethodEntry);
- DEFINE(MethodExit);
- DEFINE(NativeMethodBind);
- DEFINE(CompiledMethodLoad);
- DEFINE(CompiledMethodUnload);
- DEFINE(DynamicCodeGenerated);
- DEFINE(DataDumpRequest);
- DEFINE(MonitorWait);
- DEFINE(MonitorWaited);
- DEFINE(MonitorContendedEnter);
- DEFINE(MonitorContendedEntered);
- DEFINE(GarbageCollectionStart);
- DEFINE(GarbageCollectionFinish);
- DEFINE(ObjectFree);
- DEFINE(VMObjectAlloc);
- #undef DEFINE
- env->SetEventCallbacks (&callbacks, sizeof (callbacks));
- // Enable all the callbacks
- #define ENABLE(Event) \
- env->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_ ## Event, NULL)
- ENABLE (VM_INIT);
- ENABLE (VM_DEATH);
- ENABLE (THREAD_START);
- ENABLE (THREAD_END);
- ENABLE (CLASS_FILE_LOAD_HOOK);
- ENABLE (CLASS_LOAD);
- ENABLE (CLASS_PREPARE);
- ENABLE (VM_START);
- ENABLE (EXCEPTION);
- ENABLE (EXCEPTION_CATCH);
- ENABLE (SINGLE_STEP);
- ENABLE (FRAME_POP);
- ENABLE (BREAKPOINT);
- ENABLE (FIELD_ACCESS);
- ENABLE (FIELD_MODIFICATION);
- ENABLE (METHOD_ENTRY);
- ENABLE (METHOD_EXIT);
- ENABLE (NATIVE_METHOD_BIND);
- ENABLE (COMPILED_METHOD_LOAD);
- ENABLE (COMPILED_METHOD_UNLOAD);
- ENABLE (DYNAMIC_CODE_GENERATED);
- ENABLE (DATA_DUMP_REQUEST);
- ENABLE (MONITOR_WAIT);
- ENABLE (MONITOR_WAITED);
- ENABLE (MONITOR_CONTENDED_ENTER);
- ENABLE (MONITOR_CONTENDED_ENTERED);
- ENABLE (GARBAGE_COLLECTION_START);
- ENABLE (GARBAGE_COLLECTION_FINISH);
- ENABLE (OBJECT_FREE);
- ENABLE (VM_OBJECT_ALLOC);
- // All events should now be enabled.
- print_events ();
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_INIT, (jthread) 0x2, (JNIEnv *) 0x1);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_DEATH, (jthread) 0x2, (JNIEnv *) 0x1);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_START, (jthread) 0x2,
- (JNIEnv *) 0x1);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, (jthread) 0x2,
- (JNIEnv *) 0x1);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, (jthread) 0xb00,
- (JNIEnv *) 0x1, (jclass) 0x2, (jobject) 0x3,
- "4", (jobject) 0x5, (jint) 6,
- (const unsigned char *) 0x7, (jint *) 0x8,
- (unsigned char **) 0x9);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_CLASS_LOAD, (jthread) 0x2, (JNIEnv *) 0x1,
- (jclass) 0x3);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_CLASS_PREPARE, (jthread) 0x2,
- (JNIEnv *) 0x1, (jclass) 0x3);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_START, (jthread) 0xb00, (JNIEnv *) 0x1);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_EXCEPTION, (jthread) 0x2, (JNIEnv *) 0x1,
- (jmethodID) 0x3, (jlocation) 0x4, (jobject) 0x5,
- (jmethodID) 0x6, (jlocation) 0x7);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_EXCEPTION_CATCH, (jthread) 0x2,
- (JNIEnv *) 0x1, (jmethodID) 0x3, (jlocation) 0x4,
- (jobject) 0x5);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_SINGLE_STEP, (jthread) 0x2, (JNIEnv *) 0x1,
- (jmethodID) 0x3, (jlocation) 0x4);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_FRAME_POP, (jthread) 0x2, (JNIEnv *) 0x1,
- (jmethodID) 0x3, 4);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_BREAKPOINT, (jthread) 0x2, (JNIEnv *) 0x1,
- (jmethodID) 0x3, (jlocation) 0x4);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_FIELD_ACCESS, (jthread) 0x2,
- (JNIEnv *) 0x1, (jmethodID) 0x3, (jlocation) 0x4,
- (jclass) 0x5, (jobject) 0x6, (jfieldID) 0x7);
- jvalue value;
- value.l = (jobject) 0x9;
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_FIELD_MODIFICATION, (jthread) 0x2,
- (JNIEnv *) 0x1, (jmethodID) 0x3, (jlocation) 0x4,
- (jclass) 0x5, (jobject) 0x6, (jfieldID) 0x7,
- (int) '8', value);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_METHOD_ENTRY, (jthread) 0x2,
- (JNIEnv *) 0x1, (jmethodID) 0x3);
- jvalue value2;
- value2.i = 5;
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_METHOD_EXIT, (jthread) 0x2,
- (JNIEnv *) 0x1, (jmethodID) 0x3, 4, value2);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_NATIVE_METHOD_BIND, (jthread) 0x2,
- (JNIEnv *) 0x1, (jmethodID) 0x3, (void *) 0x4,
- (void **) 0x5);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_COMPILED_METHOD_LOAD, (jthread) 0xb00,
- (jmethodID) 0x1, (jint) 2, (const void *) 0x3,
- (jint) 4, (const jvmtiAddrLocationMap *) 0x5,
- (const void *) 0x6);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_COMPILED_METHOD_UNLOAD, (jthread) 0xb00,
- (jmethodID) 0x1, (const void *) 0x2);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_DYNAMIC_CODE_GENERATED, (jthread) 0xb00,
- "1", (const void *) 0x2, (jint) 3);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_DATA_DUMP_REQUEST, (jthread) 0xb00);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_WAIT, (jthread) 0x2,
- (JNIEnv *) 0x1, (jobject) 0x3, (jlong) 4);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_WAITED, (jthread) 0x2,
- (JNIEnv *) 0x1, (jobject) 0x3, (int) 4);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_CONTENDED_ENTER, (jthread) 0x2,
- (JNIEnv *) 0x1, (jobject) 0x3);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, (jthread) 0x2,
- (JNIEnv *) 0x1, (jobject) 0x3);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_GARBAGE_COLLECTION_START, (jthread) 0xb00);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_GARBAGE_COLLECTION_FINISH, (jthread) 0xb00);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_OBJECT_FREE, (jthread) 0xb00, (jlong) 1);
- _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_OBJECT_ALLOC, (jthread) 0x2,
- (JNIEnv *) 0x1, (jobject) 0x3, (jclass) 0x4,
- (jlong) 5);
- }
- void
- events::do_events_tests ()
- {
- do_enable_tests ();
- do_callback_arg_tests ();
- }
|