diff options
| -rw-r--r-- | tools/ti-fast/README.md | 9 | ||||
| -rw-r--r-- | tools/ti-fast/tifast.cc | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/tools/ti-fast/README.md b/tools/ti-fast/README.md index a0a7dd7c35..c8cf180fc2 100644 --- a/tools/ti-fast/README.md +++ b/tools/ti-fast/README.md @@ -84,10 +84,15 @@ The following events may be listened for with this agent * `GarbageCollectionFinish` +* `VMStart` + +* `VMInit` + +* `VMDeath` + All other events cannot be listened for by this agent. Most of these missing events either require the use of other functions in order to be called -(`FramePop`, `ObjectFree`, etc) or are only called once (`VMInit`, `VMDeath`, -etc). +(`FramePop`, `ObjectFree`, etc). #### ART > `art -Xplugin:$ANDROID_HOST_OUT/lib64/libopenjdkjvmti.so '-agentpath:libtifast.so=MethodEntry' -cp tmp/java/helloworld.dex -Xint helloworld` diff --git a/tools/ti-fast/tifast.cc b/tools/ti-fast/tifast.cc index d02e549963..8a6ac36d37 100644 --- a/tools/ti-fast/tifast.cc +++ b/tools/ti-fast/tifast.cc @@ -88,6 +88,9 @@ static void AddCapsForEvent(jvmtiEvent event, jvmtiCapabilities* caps) { fun(MonitorWaited, EVENT(MONITOR_WAITED), (jvmtiEnv* jvmti, JNIEnv* jni, jthread thread, jobject obj, jboolean b1), (jvmti, jni, jthreadContainer{.thread = thread}, obj, b1)) \ fun(ResourceExhausted, EVENT(RESOURCE_EXHAUSTED), (jvmtiEnv* jvmti, JNIEnv* jni, jint i1, const void* cv, const char* cc), (jvmti, jni, i1, cv, cc)) \ fun(VMObjectAlloc, EVENT(VM_OBJECT_ALLOC), (jvmtiEnv* jvmti, JNIEnv* jni, jthread thread, jobject obj, jclass klass, jlong l1), (jvmti, jni, jthreadContainer{.thread = thread}, obj, klass, jlongContainer{.val = l1})) \ + fun(VMInit, EVENT(VM_INIT), (jvmtiEnv* jvmti, JNIEnv* jni, jthread thread), (jvmti, jni, jthreadContainer{.thread = thread})) \ + fun(VMStart, EVENT(VM_START), (jvmtiEnv* jvmti, JNIEnv* jni), (jvmti, jni)) \ + fun(VMDeath, EVENT(VM_DEATH), (jvmtiEnv* jvmti, JNIEnv* jni), (jvmti, jni)) \ #define FOR_ALL_SUPPORTED_NO_JNI_EVENTS(fun) \ fun(CompiledMethodLoad, EVENT(COMPILED_METHOD_LOAD), (jvmtiEnv* jvmti, jmethodID meth, jint i1, const void* cv1, jint i2, const jvmtiAddrLocationMap* alm, const void* cv2), (jvmti, meth, i1, cv1, i2, alm, cv2)) \ |