📄 jvmti.h
字号:
char* short_description; jint param_count; jvmtiParamInfo* params; jint error_count; jvmtiError* errors;} jvmtiExtensionFunctionInfo;typedef struct { jint extension_event_index; char* id; char* short_description; jint param_count; jvmtiParamInfo* params;} jvmtiExtensionEventInfo;typedef struct { jlong max_value; jboolean may_skip_forward; jboolean may_skip_backward; jvmtiTimerKind kind; jlong reserved1; jlong reserved2;} jvmtiTimerInfo;typedef struct { const void* start_address; jlocation location;} jvmtiAddrLocationMap;typedef struct { unsigned int can_tag_objects : 1; unsigned int can_generate_field_modification_events : 1; unsigned int can_generate_field_access_events : 1; unsigned int can_get_bytecodes : 1; unsigned int can_get_synthetic_attribute : 1; unsigned int can_get_owned_monitor_info : 1; unsigned int can_get_current_contended_monitor : 1; unsigned int can_get_monitor_info : 1; unsigned int can_pop_frame : 1; unsigned int can_redefine_classes : 1; unsigned int can_signal_thread : 1; unsigned int can_get_source_file_name : 1; unsigned int can_get_line_numbers : 1; unsigned int can_get_source_debug_extension : 1; unsigned int can_access_local_variables : 1; unsigned int can_maintain_original_method_order : 1; unsigned int can_generate_single_step_events : 1; unsigned int can_generate_exception_events : 1; unsigned int can_generate_frame_pop_events : 1; unsigned int can_generate_breakpoint_events : 1; unsigned int can_suspend : 1; unsigned int can_redefine_any_class : 1; unsigned int can_get_current_thread_cpu_time : 1; unsigned int can_get_thread_cpu_time : 1; unsigned int can_generate_method_entry_events : 1; unsigned int can_generate_method_exit_events : 1; unsigned int can_generate_all_class_hook_events : 1; unsigned int can_generate_compiled_method_load_events : 1; unsigned int can_generate_monitor_events : 1; unsigned int can_generate_vm_object_alloc_events : 1; unsigned int can_generate_native_method_bind_events : 1; unsigned int can_generate_garbage_collection_events : 1; unsigned int can_generate_object_free_events : 1; unsigned int : 15; unsigned int : 16; unsigned int : 16; unsigned int : 16; unsigned int : 16; unsigned int : 16;} jvmtiCapabilities; /* Event Definitions */typedef void (JNICALL *jvmtiEventReserved)(void);typedef void (JNICALL *jvmtiEventBreakpoint) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jmethodID method, jlocation location);typedef void (JNICALL *jvmtiEventClassFileLoadHook) (jvmtiEnv *jvmti_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);typedef void (JNICALL *jvmtiEventClassLoad) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jclass klass);typedef void (JNICALL *jvmtiEventClassPrepare) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jclass klass);typedef void (JNICALL *jvmtiEventCompiledMethodLoad) (jvmtiEnv *jvmti_env, jmethodID method, jint code_size, const void* code_addr, jint map_length, const jvmtiAddrLocationMap* map, const void* compile_info);typedef void (JNICALL *jvmtiEventCompiledMethodUnload) (jvmtiEnv *jvmti_env, jmethodID method, const void* code_addr);typedef void (JNICALL *jvmtiEventDataDumpRequest) (jvmtiEnv *jvmti_env);typedef void (JNICALL *jvmtiEventDynamicCodeGenerated) (jvmtiEnv *jvmti_env, const char* name, const void* address, jint length);typedef void (JNICALL *jvmtiEventException) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jmethodID method, jlocation location, jobject exception, jmethodID catch_method, jlocation catch_location);typedef void (JNICALL *jvmtiEventExceptionCatch) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jmethodID method, jlocation location, jobject exception);typedef void (JNICALL *jvmtiEventFieldAccess) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jmethodID method, jlocation location, jclass field_klass, jobject object, jfieldID field);typedef void (JNICALL *jvmtiEventFieldModification) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jmethodID method, jlocation location, jclass field_klass, jobject object, jfieldID field, char signature_type, jvalue new_value);typedef void (JNICALL *jvmtiEventFramePop) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jmethodID method, jboolean was_popped_by_exception);typedef void (JNICALL *jvmtiEventGarbageCollectionFinish) (jvmtiEnv *jvmti_env);typedef void (JNICALL *jvmtiEventGarbageCollectionStart) (jvmtiEnv *jvmti_env);typedef void (JNICALL *jvmtiEventMethodEntry) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jmethodID method);typedef void (JNICALL *jvmtiEventMethodExit) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jmethodID method, jboolean was_popped_by_exception, jvalue return_value);typedef void (JNICALL *jvmtiEventMonitorContendedEnter) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jobject object);typedef void (JNICALL *jvmtiEventMonitorContendedEntered) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jobject object);typedef void (JNICALL *jvmtiEventMonitorWait) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jobject object, jlong timeout);typedef void (JNICALL *jvmtiEventMonitorWaited) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jobject object, jboolean timed_out);typedef void (JNICALL *jvmtiEventNativeMethodBind) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jmethodID method, void* address, void** new_address_ptr);typedef void (JNICALL *jvmtiEventObjectFree) (jvmtiEnv *jvmti_env, jlong tag);typedef void (JNICALL *jvmtiEventSingleStep) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jmethodID method, jlocation location);typedef void (JNICALL *jvmtiEventThreadEnd) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread);typedef void (JNICALL *jvmtiEventThreadStart) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread);typedef void (JNICALL *jvmtiEventVMDeath) (jvmtiEnv *jvmti_env, JNIEnv* jni_env);typedef void (JNICALL *jvmtiEventVMInit) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread);typedef void (JNICALL *jvmtiEventVMObjectAlloc) (jvmtiEnv *jvmti_env, JNIEnv* jni_env, jthread thread, jobject object, jclass object_klass, jlong size);typedef void (JNICALL *jvmtiEventVMStart) (jvmtiEnv *jvmti_env, JNIEnv* jni_env); /* Event Callback Structure */typedef struct { /* 50 : VM Initialization Event */ jvmtiEventVMInit VMInit; /* 51 : VM Death Event */ jvmtiEventVMDeath VMDeath; /* 52 : Thread Start */ jvmtiEventThreadStart ThreadStart; /* 53 : Thread End */ jvmtiEventThreadEnd ThreadEnd; /* 54 : Class File Load Hook */ jvmtiEventClassFileLoadHook ClassFileLoadHook; /* 55 : Class Load */ jvmtiEventClassLoad ClassLoad; /* 56 : Class Prepare */ jvmtiEventClassPrepare ClassPrepare; /* 57 : VM Start Event */ jvmtiEventVMStart VMStart; /* 58 : Exception */ jvmtiEventException Exception; /* 59 : Exception Catch */ jvmtiEventExceptionCatch ExceptionCatch; /* 60 : Single Step */ jvmtiEventSingleStep SingleStep; /* 61 : Frame Pop */ jvmtiEventFramePop FramePop; /* 62 : Breakpoint */ jvmtiEventBreakpoint Breakpoint; /* 63 : Field Access */ jvmtiEventFieldAccess FieldAccess; /* 64 : Field Modification */ jvmtiEventFieldModification FieldModification; /* 65 : Method Entry */ jvmtiEventMethodEntry MethodEntry; /* 66 : Method Exit */ jvmtiEventMethodExit MethodExit; /* 67 : Native Method Bind */ jvmtiEventNativeMethodBind NativeMethodBind; /* 68 : Compiled Method Load */ jvmtiEventCompiledMethodLoad CompiledMethodLoad; /* 69 : Compiled Method Unload */ jvmtiEventCompiledMethodUnload CompiledMethodUnload; /* 70 : Dynamic Code Generated */ jvmtiEventDynamicCodeGenerated DynamicCodeGenerated; /* 71 : Data Dump Request */ jvmtiEventDataDumpRequest DataDumpRequest; /* 72 */ jvmtiEventReserved reserved72; /* 73 : Monitor Wait */ jvmtiEventMonitorWait MonitorWait; /* 74 : Monitor Waited */ jvmtiEventMonitorWaited MonitorWaited; /* 75 : Monitor Contended Enter */ jvmtiEventMonitorContendedEnter MonitorContendedEnter; /* 76 : Monitor Contended Entered */ jvmtiEventMonitorContendedEntered MonitorContendedEntered; /* 77 */ jvmtiEventReserved reserved77; /* 78 */ jvmtiEventReserved reserved78; /* 79 */ jvmtiEventReserved reserved79; /* 80 */ jvmtiEventReserved reserved80; /* 81 : Garbage Collection Start */ jvmtiEventGarbageCollectionStart GarbageCollectionStart; /* 82 : Garbage Collection Finish */ jvmtiEventGarbageCollectionFinish GarbageCollectionFinish; /* 83 : Object Free */ jvmtiEventObjectFree ObjectFree; /* 84 : VM Object Allocation */ jvmtiEventVMObjectAlloc VMObjectAlloc;} jvmtiEventCallbacks; /* Function Interface */ typedef struct jvmtiInterface_1_ { /* 1 : RESERVED */ void *reserved1; /* 2 : Set Event Notification Mode */ jvmtiError (JNICALL *SetEventNotificationMode) (jvmtiEnv* env, jvmtiEventMode mode, jvmtiEvent event_type, jthread event_thread, ...); /* 3 : RESERVED */ void *reserved3; /* 4 : Get All Threads */ jvmtiError (JNICALL *GetAllThreads) (jvmtiEnv* env, jint* threads_count_ptr, jthread** threads_ptr); /* 5 : Suspend Thread */ jvmtiError (JNICALL *SuspendThread) (jvmtiEnv* env, jthread thread); /* 6 : Resume Thread */ jvmtiError (JNICALL *ResumeThread) (jvmtiEnv* env, jthread thread); /* 7 : Stop Thread */ jvmtiError (JNICALL *StopThread) (jvmtiEnv* env, jthread thread, jobject exception); /* 8 : Interrupt Thread */ jvmtiError (JNICALL *InterruptThread) (jvmtiEnv* env, jthread thread); /* 9 : Get Thread Info */ jvmtiError (JNICALL *GetThreadInfo) (jvmtiEnv* env, jthread thread, jvmtiThreadInfo* info_ptr); /* 10 : Get Owned Monitor Info */ jvmtiError (JNICALL *GetOwnedMonitorInfo) (jvmtiEnv* env, jthread thread, jint* owned_monitor_count_ptr, jobject** owned_monitors_ptr); /* 11 : Get Current Contended Monitor */ jvmtiError (JNICALL *GetCurrentContendedMonitor) (jvmtiEnv* env, jthread thread, jobject* monitor_ptr); /* 12 : Run Agent Thread */ jvmtiError (JNICALL *RunAgentThread) (jvmtiEnv* env, jthread thread, jvmtiStartFunction proc, const void* arg, jint priority); /* 13 : Get Top Thread Groups */ jvmtiError (JNICALL *GetTopThreadGroups) (jvmtiEnv* env, jint* group_count_ptr, jthreadGroup** groups_ptr); /* 14 : Get Thread Group Info */ jvmtiError (JNICALL *GetThreadGroupInfo) (jvmtiEnv* env, jthreadGroup group, jvmtiThreadGroupInfo* info_ptr); /* 15 : Get Thread Group Children */ jvmtiError (JNICALL *GetThreadGroupChildren) (jvmtiEnv* env, jthreadGroup group, jint* thread_count_ptr, jthread** threads_ptr, jint* group_count_ptr, jthreadGroup** groups_ptr); /* 16 : Get Frame Count */ jvmtiError (JNICALL *GetFrameCount) (jvmtiEnv* env, jthread thread, jint* count_ptr); /* 17 : Get Thread State */ jvmtiError (JNICALL *GetThreadState) (jvmtiEnv* env,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -