|
|
|
@ -1,30 +1,29 @@
|
|
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
|
|
|
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved.
|
|
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
|
|
|
*
|
|
|
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
|
|
|
* under the terms of the GNU General Public License version 2 only, as
|
|
|
|
|
* published by the Free Software Foundation. Oracle designates this
|
|
|
|
|
* particular file as subject to the "Classpath" exception as provided
|
|
|
|
|
* by Oracle in the LICENSE file that accompanied this code.
|
|
|
|
|
*
|
|
|
|
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
|
|
|
* version 2 for more details (a copy is included in the LICENSE file that
|
|
|
|
|
* accompanied this code).
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License version
|
|
|
|
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
|
|
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
|
*
|
|
|
|
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
|
|
|
* or visit www.oracle.com if you need additional information or have any
|
|
|
|
|
* questions.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */
|
|
|
|
|
|
|
|
|
|
/* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */
|
|
|
|
|
|
|
|
|
|
/* Include file for the Java(tm) Virtual Machine Tool Interface */
|
|
|
|
|
|
|
|
|
@ -42,8 +41,10 @@ enum {
|
|
|
|
|
JVMTI_VERSION_1_0 = 0x30010000,
|
|
|
|
|
JVMTI_VERSION_1_1 = 0x30010100,
|
|
|
|
|
JVMTI_VERSION_1_2 = 0x30010200,
|
|
|
|
|
JVMTI_VERSION_9 = 0x30090000,
|
|
|
|
|
JVMTI_VERSION_11 = 0x300B0000,
|
|
|
|
|
|
|
|
|
|
JVMTI_VERSION = 0x30000000 + (1 * 0x10000) + (2 * 0x100) + 1 /* version: 1.2.1 */
|
|
|
|
|
JVMTI_VERSION = 0x30000000 + (16 * 0x10000) + ( 0 * 0x100) + 0 /* version: 16.0.0 */
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jint JNICALL
|
|
|
|
@ -348,6 +349,7 @@ typedef enum {
|
|
|
|
|
JVMTI_ERROR_INVALID_METHODID = 23,
|
|
|
|
|
JVMTI_ERROR_INVALID_LOCATION = 24,
|
|
|
|
|
JVMTI_ERROR_INVALID_FIELDID = 25,
|
|
|
|
|
JVMTI_ERROR_INVALID_MODULE = 26,
|
|
|
|
|
JVMTI_ERROR_NO_MORE_FRAMES = 31,
|
|
|
|
|
JVMTI_ERROR_OPAQUE_FRAME = 32,
|
|
|
|
|
JVMTI_ERROR_TYPE_MISMATCH = 34,
|
|
|
|
@ -369,7 +371,9 @@ typedef enum {
|
|
|
|
|
JVMTI_ERROR_NAMES_DONT_MATCH = 69,
|
|
|
|
|
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70,
|
|
|
|
|
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71,
|
|
|
|
|
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED = 72,
|
|
|
|
|
JVMTI_ERROR_UNMODIFIABLE_CLASS = 79,
|
|
|
|
|
JVMTI_ERROR_UNMODIFIABLE_MODULE = 80,
|
|
|
|
|
JVMTI_ERROR_NOT_AVAILABLE = 98,
|
|
|
|
|
JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99,
|
|
|
|
|
JVMTI_ERROR_NULL_POINTER = 100,
|
|
|
|
@ -422,55 +426,56 @@ typedef enum {
|
|
|
|
|
JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82,
|
|
|
|
|
JVMTI_EVENT_OBJECT_FREE = 83,
|
|
|
|
|
JVMTI_EVENT_VM_OBJECT_ALLOC = 84,
|
|
|
|
|
JVMTI_MAX_EVENT_TYPE_VAL = 84
|
|
|
|
|
JVMTI_EVENT_SAMPLED_OBJECT_ALLOC = 86,
|
|
|
|
|
JVMTI_MAX_EVENT_TYPE_VAL = 86
|
|
|
|
|
} jvmtiEvent;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Pre-Declarations */
|
|
|
|
|
struct _jvmtiThreadInfo;
|
|
|
|
|
typedef struct _jvmtiThreadInfo jvmtiThreadInfo;
|
|
|
|
|
struct _jvmtiMonitorStackDepthInfo;
|
|
|
|
|
typedef struct _jvmtiMonitorStackDepthInfo jvmtiMonitorStackDepthInfo;
|
|
|
|
|
struct _jvmtiThreadGroupInfo;
|
|
|
|
|
typedef struct _jvmtiThreadGroupInfo jvmtiThreadGroupInfo;
|
|
|
|
|
struct _jvmtiFrameInfo;
|
|
|
|
|
typedef struct _jvmtiFrameInfo jvmtiFrameInfo;
|
|
|
|
|
struct _jvmtiStackInfo;
|
|
|
|
|
typedef struct _jvmtiStackInfo jvmtiStackInfo;
|
|
|
|
|
struct _jvmtiHeapReferenceInfoField;
|
|
|
|
|
typedef struct _jvmtiHeapReferenceInfoField jvmtiHeapReferenceInfoField;
|
|
|
|
|
struct _jvmtiHeapReferenceInfoArray;
|
|
|
|
|
typedef struct _jvmtiHeapReferenceInfoArray jvmtiHeapReferenceInfoArray;
|
|
|
|
|
struct _jvmtiHeapReferenceInfoConstantPool;
|
|
|
|
|
typedef struct _jvmtiHeapReferenceInfoConstantPool jvmtiHeapReferenceInfoConstantPool;
|
|
|
|
|
struct _jvmtiHeapReferenceInfoStackLocal;
|
|
|
|
|
typedef struct _jvmtiHeapReferenceInfoStackLocal jvmtiHeapReferenceInfoStackLocal;
|
|
|
|
|
struct _jvmtiHeapReferenceInfoJniLocal;
|
|
|
|
|
typedef struct _jvmtiHeapReferenceInfoJniLocal jvmtiHeapReferenceInfoJniLocal;
|
|
|
|
|
struct _jvmtiHeapReferenceInfoReserved;
|
|
|
|
|
typedef struct _jvmtiHeapReferenceInfoReserved jvmtiHeapReferenceInfoReserved;
|
|
|
|
|
union _jvmtiHeapReferenceInfo;
|
|
|
|
|
typedef union _jvmtiHeapReferenceInfo jvmtiHeapReferenceInfo;
|
|
|
|
|
struct _jvmtiHeapCallbacks;
|
|
|
|
|
typedef struct _jvmtiHeapCallbacks jvmtiHeapCallbacks;
|
|
|
|
|
struct _jvmtiClassDefinition;
|
|
|
|
|
typedef struct _jvmtiClassDefinition jvmtiClassDefinition;
|
|
|
|
|
struct _jvmtiMonitorUsage;
|
|
|
|
|
typedef struct _jvmtiMonitorUsage jvmtiMonitorUsage;
|
|
|
|
|
struct _jvmtiLineNumberEntry;
|
|
|
|
|
typedef struct _jvmtiLineNumberEntry jvmtiLineNumberEntry;
|
|
|
|
|
struct _jvmtiLocalVariableEntry;
|
|
|
|
|
typedef struct _jvmtiLocalVariableEntry jvmtiLocalVariableEntry;
|
|
|
|
|
struct _jvmtiParamInfo;
|
|
|
|
|
typedef struct _jvmtiParamInfo jvmtiParamInfo;
|
|
|
|
|
struct _jvmtiExtensionFunctionInfo;
|
|
|
|
|
typedef struct _jvmtiExtensionFunctionInfo jvmtiExtensionFunctionInfo;
|
|
|
|
|
struct _jvmtiExtensionEventInfo;
|
|
|
|
|
typedef struct _jvmtiExtensionEventInfo jvmtiExtensionEventInfo;
|
|
|
|
|
struct _jvmtiTimerInfo;
|
|
|
|
|
typedef struct _jvmtiTimerInfo jvmtiTimerInfo;
|
|
|
|
|
struct _jvmtiAddrLocationMap;
|
|
|
|
|
typedef struct _jvmtiAddrLocationMap jvmtiAddrLocationMap;
|
|
|
|
|
struct jvmtiThreadInfo;
|
|
|
|
|
typedef struct jvmtiThreadInfo jvmtiThreadInfo;
|
|
|
|
|
struct jvmtiMonitorStackDepthInfo;
|
|
|
|
|
typedef struct jvmtiMonitorStackDepthInfo jvmtiMonitorStackDepthInfo;
|
|
|
|
|
struct jvmtiThreadGroupInfo;
|
|
|
|
|
typedef struct jvmtiThreadGroupInfo jvmtiThreadGroupInfo;
|
|
|
|
|
struct jvmtiFrameInfo;
|
|
|
|
|
typedef struct jvmtiFrameInfo jvmtiFrameInfo;
|
|
|
|
|
struct jvmtiStackInfo;
|
|
|
|
|
typedef struct jvmtiStackInfo jvmtiStackInfo;
|
|
|
|
|
struct jvmtiHeapReferenceInfoField;
|
|
|
|
|
typedef struct jvmtiHeapReferenceInfoField jvmtiHeapReferenceInfoField;
|
|
|
|
|
struct jvmtiHeapReferenceInfoArray;
|
|
|
|
|
typedef struct jvmtiHeapReferenceInfoArray jvmtiHeapReferenceInfoArray;
|
|
|
|
|
struct jvmtiHeapReferenceInfoConstantPool;
|
|
|
|
|
typedef struct jvmtiHeapReferenceInfoConstantPool jvmtiHeapReferenceInfoConstantPool;
|
|
|
|
|
struct jvmtiHeapReferenceInfoStackLocal;
|
|
|
|
|
typedef struct jvmtiHeapReferenceInfoStackLocal jvmtiHeapReferenceInfoStackLocal;
|
|
|
|
|
struct jvmtiHeapReferenceInfoJniLocal;
|
|
|
|
|
typedef struct jvmtiHeapReferenceInfoJniLocal jvmtiHeapReferenceInfoJniLocal;
|
|
|
|
|
struct jvmtiHeapReferenceInfoReserved;
|
|
|
|
|
typedef struct jvmtiHeapReferenceInfoReserved jvmtiHeapReferenceInfoReserved;
|
|
|
|
|
union jvmtiHeapReferenceInfo;
|
|
|
|
|
typedef union jvmtiHeapReferenceInfo jvmtiHeapReferenceInfo;
|
|
|
|
|
struct jvmtiHeapCallbacks;
|
|
|
|
|
typedef struct jvmtiHeapCallbacks jvmtiHeapCallbacks;
|
|
|
|
|
struct jvmtiClassDefinition;
|
|
|
|
|
typedef struct jvmtiClassDefinition jvmtiClassDefinition;
|
|
|
|
|
struct jvmtiMonitorUsage;
|
|
|
|
|
typedef struct jvmtiMonitorUsage jvmtiMonitorUsage;
|
|
|
|
|
struct jvmtiLineNumberEntry;
|
|
|
|
|
typedef struct jvmtiLineNumberEntry jvmtiLineNumberEntry;
|
|
|
|
|
struct jvmtiLocalVariableEntry;
|
|
|
|
|
typedef struct jvmtiLocalVariableEntry jvmtiLocalVariableEntry;
|
|
|
|
|
struct jvmtiParamInfo;
|
|
|
|
|
typedef struct jvmtiParamInfo jvmtiParamInfo;
|
|
|
|
|
struct jvmtiExtensionFunctionInfo;
|
|
|
|
|
typedef struct jvmtiExtensionFunctionInfo jvmtiExtensionFunctionInfo;
|
|
|
|
|
struct jvmtiExtensionEventInfo;
|
|
|
|
|
typedef struct jvmtiExtensionEventInfo jvmtiExtensionEventInfo;
|
|
|
|
|
struct jvmtiTimerInfo;
|
|
|
|
|
typedef struct jvmtiTimerInfo jvmtiTimerInfo;
|
|
|
|
|
struct jvmtiAddrLocationMap;
|
|
|
|
|
typedef struct jvmtiAddrLocationMap jvmtiAddrLocationMap;
|
|
|
|
|
|
|
|
|
|
/* Function Types */
|
|
|
|
|
|
|
|
|
@ -515,43 +520,43 @@ typedef void (JNICALL *jvmtiExtensionEvent)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Structure Types */
|
|
|
|
|
struct _jvmtiThreadInfo {
|
|
|
|
|
struct jvmtiThreadInfo {
|
|
|
|
|
char* name;
|
|
|
|
|
jint priority;
|
|
|
|
|
jboolean is_daemon;
|
|
|
|
|
jthreadGroup thread_group;
|
|
|
|
|
jobject context_class_loader;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiMonitorStackDepthInfo {
|
|
|
|
|
struct jvmtiMonitorStackDepthInfo {
|
|
|
|
|
jobject monitor;
|
|
|
|
|
jint stack_depth;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiThreadGroupInfo {
|
|
|
|
|
struct jvmtiThreadGroupInfo {
|
|
|
|
|
jthreadGroup parent;
|
|
|
|
|
char* name;
|
|
|
|
|
jint max_priority;
|
|
|
|
|
jboolean is_daemon;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiFrameInfo {
|
|
|
|
|
struct jvmtiFrameInfo {
|
|
|
|
|
jmethodID method;
|
|
|
|
|
jlocation location;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiStackInfo {
|
|
|
|
|
struct jvmtiStackInfo {
|
|
|
|
|
jthread thread;
|
|
|
|
|
jint state;
|
|
|
|
|
jvmtiFrameInfo* frame_buffer;
|
|
|
|
|
jint frame_count;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiHeapReferenceInfoField {
|
|
|
|
|
struct jvmtiHeapReferenceInfoField {
|
|
|
|
|
jint index;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiHeapReferenceInfoArray {
|
|
|
|
|
struct jvmtiHeapReferenceInfoArray {
|
|
|
|
|
jint index;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiHeapReferenceInfoConstantPool {
|
|
|
|
|
struct jvmtiHeapReferenceInfoConstantPool {
|
|
|
|
|
jint index;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiHeapReferenceInfoStackLocal {
|
|
|
|
|
struct jvmtiHeapReferenceInfoStackLocal {
|
|
|
|
|
jlong thread_tag;
|
|
|
|
|
jlong thread_id;
|
|
|
|
|
jint depth;
|
|
|
|
@ -559,13 +564,13 @@ struct _jvmtiHeapReferenceInfoStackLocal {
|
|
|
|
|
jlocation location;
|
|
|
|
|
jint slot;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiHeapReferenceInfoJniLocal {
|
|
|
|
|
struct jvmtiHeapReferenceInfoJniLocal {
|
|
|
|
|
jlong thread_tag;
|
|
|
|
|
jlong thread_id;
|
|
|
|
|
jint depth;
|
|
|
|
|
jmethodID method;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiHeapReferenceInfoReserved {
|
|
|
|
|
struct jvmtiHeapReferenceInfoReserved {
|
|
|
|
|
jlong reserved1;
|
|
|
|
|
jlong reserved2;
|
|
|
|
|
jlong reserved3;
|
|
|
|
@ -575,7 +580,7 @@ struct _jvmtiHeapReferenceInfoReserved {
|
|
|
|
|
jlong reserved7;
|
|
|
|
|
jlong reserved8;
|
|
|
|
|
};
|
|
|
|
|
union _jvmtiHeapReferenceInfo {
|
|
|
|
|
union jvmtiHeapReferenceInfo {
|
|
|
|
|
jvmtiHeapReferenceInfoField field;
|
|
|
|
|
jvmtiHeapReferenceInfoArray array;
|
|
|
|
|
jvmtiHeapReferenceInfoConstantPool constant_pool;
|
|
|
|
@ -583,7 +588,7 @@ union _jvmtiHeapReferenceInfo {
|
|
|
|
|
jvmtiHeapReferenceInfoJniLocal jni_local;
|
|
|
|
|
jvmtiHeapReferenceInfoReserved other;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiHeapCallbacks {
|
|
|
|
|
struct jvmtiHeapCallbacks {
|
|
|
|
|
jvmtiHeapIterationCallback heap_iteration_callback;
|
|
|
|
|
jvmtiHeapReferenceCallback heap_reference_callback;
|
|
|
|
|
jvmtiPrimitiveFieldCallback primitive_field_callback;
|
|
|
|
@ -601,12 +606,12 @@ struct _jvmtiHeapCallbacks {
|
|
|
|
|
jvmtiReservedCallback reserved14;
|
|
|
|
|
jvmtiReservedCallback reserved15;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiClassDefinition {
|
|
|
|
|
struct jvmtiClassDefinition {
|
|
|
|
|
jclass klass;
|
|
|
|
|
jint class_byte_count;
|
|
|
|
|
const unsigned char* class_bytes;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiMonitorUsage {
|
|
|
|
|
struct jvmtiMonitorUsage {
|
|
|
|
|
jthread owner;
|
|
|
|
|
jint entry_count;
|
|
|
|
|
jint waiter_count;
|
|
|
|
@ -614,11 +619,11 @@ struct _jvmtiMonitorUsage {
|
|
|
|
|
jint notify_waiter_count;
|
|
|
|
|
jthread* notify_waiters;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiLineNumberEntry {
|
|
|
|
|
struct jvmtiLineNumberEntry {
|
|
|
|
|
jlocation start_location;
|
|
|
|
|
jint line_number;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiLocalVariableEntry {
|
|
|
|
|
struct jvmtiLocalVariableEntry {
|
|
|
|
|
jlocation start_location;
|
|
|
|
|
jint length;
|
|
|
|
|
char* name;
|
|
|
|
@ -626,13 +631,13 @@ struct _jvmtiLocalVariableEntry {
|
|
|
|
|
char* generic_signature;
|
|
|
|
|
jint slot;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiParamInfo {
|
|
|
|
|
struct jvmtiParamInfo {
|
|
|
|
|
char* name;
|
|
|
|
|
jvmtiParamKind kind;
|
|
|
|
|
jvmtiParamTypes base_type;
|
|
|
|
|
jboolean null_ok;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiExtensionFunctionInfo {
|
|
|
|
|
struct jvmtiExtensionFunctionInfo {
|
|
|
|
|
jvmtiExtensionFunction func;
|
|
|
|
|
char* id;
|
|
|
|
|
char* short_description;
|
|
|
|
@ -641,14 +646,14 @@ struct _jvmtiExtensionFunctionInfo {
|
|
|
|
|
jint error_count;
|
|
|
|
|
jvmtiError* errors;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiExtensionEventInfo {
|
|
|
|
|
struct jvmtiExtensionEventInfo {
|
|
|
|
|
jint extension_event_index;
|
|
|
|
|
char* id;
|
|
|
|
|
char* short_description;
|
|
|
|
|
jint param_count;
|
|
|
|
|
jvmtiParamInfo* params;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiTimerInfo {
|
|
|
|
|
struct jvmtiTimerInfo {
|
|
|
|
|
jlong max_value;
|
|
|
|
|
jboolean may_skip_forward;
|
|
|
|
|
jboolean may_skip_backward;
|
|
|
|
@ -656,7 +661,7 @@ struct _jvmtiTimerInfo {
|
|
|
|
|
jlong reserved1;
|
|
|
|
|
jlong reserved2;
|
|
|
|
|
};
|
|
|
|
|
struct _jvmtiAddrLocationMap {
|
|
|
|
|
struct jvmtiAddrLocationMap {
|
|
|
|
|
const void* start_address;
|
|
|
|
|
jlocation location;
|
|
|
|
|
};
|
|
|
|
@ -703,7 +708,10 @@ typedef struct {
|
|
|
|
|
unsigned int can_retransform_any_class : 1;
|
|
|
|
|
unsigned int can_generate_resource_exhaustion_heap_events : 1;
|
|
|
|
|
unsigned int can_generate_resource_exhaustion_threads_events : 1;
|
|
|
|
|
unsigned int : 7;
|
|
|
|
|
unsigned int can_generate_early_vmstart : 1;
|
|
|
|
|
unsigned int can_generate_early_class_hook_events : 1;
|
|
|
|
|
unsigned int can_generate_sampled_object_alloc_events : 1;
|
|
|
|
|
unsigned int : 4;
|
|
|
|
|
unsigned int : 16;
|
|
|
|
|
unsigned int : 16;
|
|
|
|
|
unsigned int : 16;
|
|
|
|
@ -883,6 +891,14 @@ typedef void (JNICALL *jvmtiEventResourceExhausted)
|
|
|
|
|
const void* reserved,
|
|
|
|
|
const char* description);
|
|
|
|
|
|
|
|
|
|
typedef void (JNICALL *jvmtiEventSampledObjectAlloc)
|
|
|
|
|
(jvmtiEnv *jvmti_env,
|
|
|
|
|
JNIEnv* jni_env,
|
|
|
|
|
jthread thread,
|
|
|
|
|
jobject object,
|
|
|
|
|
jclass object_klass,
|
|
|
|
|
jlong size);
|
|
|
|
|
|
|
|
|
|
typedef void (JNICALL *jvmtiEventSingleStep)
|
|
|
|
|
(jvmtiEnv *jvmti_env,
|
|
|
|
|
JNIEnv* jni_env,
|
|
|
|
@ -994,6 +1010,10 @@ typedef struct {
|
|
|
|
|
jvmtiEventObjectFree ObjectFree;
|
|
|
|
|
/* 84 : VM Object Allocation */
|
|
|
|
|
jvmtiEventVMObjectAlloc VMObjectAlloc;
|
|
|
|
|
/* 85 */
|
|
|
|
|
jvmtiEventReserved reserved85;
|
|
|
|
|
/* 86 : Sampled Object Allocation */
|
|
|
|
|
jvmtiEventSampledObjectAlloc SampledObjectAlloc;
|
|
|
|
|
} jvmtiEventCallbacks;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1011,8 +1031,10 @@ typedef struct jvmtiInterface_1_ {
|
|
|
|
|
jthread event_thread,
|
|
|
|
|
...);
|
|
|
|
|
|
|
|
|
|
/* 3 : RESERVED */
|
|
|
|
|
void *reserved3;
|
|
|
|
|
/* 3 : Get All Modules */
|
|
|
|
|
jvmtiError (JNICALL *GetAllModules) (jvmtiEnv* env,
|
|
|
|
|
jint* module_count_ptr,
|
|
|
|
|
jobject** modules_ptr);
|
|
|
|
|
|
|
|
|
|
/* 4 : Get All Threads */
|
|
|
|
|
jvmtiError (JNICALL *GetAllThreads) (jvmtiEnv* env,
|
|
|
|
@ -1213,8 +1235,11 @@ typedef struct jvmtiInterface_1_ {
|
|
|
|
|
jmethodID method,
|
|
|
|
|
jlocation location);
|
|
|
|
|
|
|
|
|
|
/* 40 : RESERVED */
|
|
|
|
|
void *reserved40;
|
|
|
|
|
/* 40 : Get Named Module */
|
|
|
|
|
jvmtiError (JNICALL *GetNamedModule) (jvmtiEnv* env,
|
|
|
|
|
jobject class_loader,
|
|
|
|
|
const char* package_name,
|
|
|
|
|
jobject* module_ptr);
|
|
|
|
|
|
|
|
|
|
/* 41 : Set Field Access Watch */
|
|
|
|
|
jvmtiError (JNICALL *SetFieldAccessWatch) (jvmtiEnv* env,
|
|
|
|
@ -1492,23 +1517,38 @@ typedef struct jvmtiInterface_1_ {
|
|
|
|
|
const jthread* request_list,
|
|
|
|
|
jvmtiError* results);
|
|
|
|
|
|
|
|
|
|
/* 94 : RESERVED */
|
|
|
|
|
void *reserved94;
|
|
|
|
|
|
|
|
|
|
/* 95 : RESERVED */
|
|
|
|
|
void *reserved95;
|
|
|
|
|
|
|
|
|
|
/* 96 : RESERVED */
|
|
|
|
|
void *reserved96;
|
|
|
|
|
|
|
|
|
|
/* 97 : RESERVED */
|
|
|
|
|
void *reserved97;
|
|
|
|
|
|
|
|
|
|
/* 98 : RESERVED */
|
|
|
|
|
void *reserved98;
|
|
|
|
|
|
|
|
|
|
/* 99 : RESERVED */
|
|
|
|
|
void *reserved99;
|
|
|
|
|
/* 94 : Add Module Reads */
|
|
|
|
|
jvmtiError (JNICALL *AddModuleReads) (jvmtiEnv* env,
|
|
|
|
|
jobject module,
|
|
|
|
|
jobject to_module);
|
|
|
|
|
|
|
|
|
|
/* 95 : Add Module Exports */
|
|
|
|
|
jvmtiError (JNICALL *AddModuleExports) (jvmtiEnv* env,
|
|
|
|
|
jobject module,
|
|
|
|
|
const char* pkg_name,
|
|
|
|
|
jobject to_module);
|
|
|
|
|
|
|
|
|
|
/* 96 : Add Module Opens */
|
|
|
|
|
jvmtiError (JNICALL *AddModuleOpens) (jvmtiEnv* env,
|
|
|
|
|
jobject module,
|
|
|
|
|
const char* pkg_name,
|
|
|
|
|
jobject to_module);
|
|
|
|
|
|
|
|
|
|
/* 97 : Add Module Uses */
|
|
|
|
|
jvmtiError (JNICALL *AddModuleUses) (jvmtiEnv* env,
|
|
|
|
|
jobject module,
|
|
|
|
|
jclass service);
|
|
|
|
|
|
|
|
|
|
/* 98 : Add Module Provides */
|
|
|
|
|
jvmtiError (JNICALL *AddModuleProvides) (jvmtiEnv* env,
|
|
|
|
|
jobject module,
|
|
|
|
|
jclass service,
|
|
|
|
|
jclass impl_class);
|
|
|
|
|
|
|
|
|
|
/* 99 : Is Modifiable Module */
|
|
|
|
|
jvmtiError (JNICALL *IsModifiableModule) (jvmtiEnv* env,
|
|
|
|
|
jobject module,
|
|
|
|
|
jboolean* is_modifiable_module_ptr);
|
|
|
|
|
|
|
|
|
|
/* 100 : Get All Stack Traces */
|
|
|
|
|
jvmtiError (JNICALL *GetAllStackTraces) (jvmtiEnv* env,
|
|
|
|
@ -1675,7 +1715,7 @@ typedef struct jvmtiInterface_1_ {
|
|
|
|
|
/* 132 : Set System Property */
|
|
|
|
|
jvmtiError (JNICALL *SetSystemProperty) (jvmtiEnv* env,
|
|
|
|
|
const char* property,
|
|
|
|
|
const char* value);
|
|
|
|
|
const char* value_ptr);
|
|
|
|
|
|
|
|
|
|
/* 133 : Get Phase */
|
|
|
|
|
jvmtiError (JNICALL *GetPhase) (jvmtiEnv* env,
|
|
|
|
@ -1781,6 +1821,10 @@ typedef struct jvmtiInterface_1_ {
|
|
|
|
|
jint depth,
|
|
|
|
|
jobject* value_ptr);
|
|
|
|
|
|
|
|
|
|
/* 156 : Set Heap Sampling Interval */
|
|
|
|
|
jvmtiError (JNICALL *SetHeapSamplingInterval) (jvmtiEnv* env,
|
|
|
|
|
jint sampling_interval);
|
|
|
|
|
|
|
|
|
|
} jvmtiInterface_1;
|
|
|
|
|
|
|
|
|
|
struct _jvmtiEnv {
|
|
|
|
@ -2137,6 +2181,50 @@ struct _jvmtiEnv {
|
|
|
|
|
return functions->ClearFieldModificationWatch(this, klass, field);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError GetAllModules(jint* module_count_ptr,
|
|
|
|
|
jobject** modules_ptr) {
|
|
|
|
|
return functions->GetAllModules(this, module_count_ptr, modules_ptr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError GetNamedModule(jobject class_loader,
|
|
|
|
|
const char* package_name,
|
|
|
|
|
jobject* module_ptr) {
|
|
|
|
|
return functions->GetNamedModule(this, class_loader, package_name, module_ptr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError AddModuleReads(jobject module,
|
|
|
|
|
jobject to_module) {
|
|
|
|
|
return functions->AddModuleReads(this, module, to_module);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError AddModuleExports(jobject module,
|
|
|
|
|
const char* pkg_name,
|
|
|
|
|
jobject to_module) {
|
|
|
|
|
return functions->AddModuleExports(this, module, pkg_name, to_module);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError AddModuleOpens(jobject module,
|
|
|
|
|
const char* pkg_name,
|
|
|
|
|
jobject to_module) {
|
|
|
|
|
return functions->AddModuleOpens(this, module, pkg_name, to_module);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError AddModuleUses(jobject module,
|
|
|
|
|
jclass service) {
|
|
|
|
|
return functions->AddModuleUses(this, module, service);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError AddModuleProvides(jobject module,
|
|
|
|
|
jclass service,
|
|
|
|
|
jclass impl_class) {
|
|
|
|
|
return functions->AddModuleProvides(this, module, service, impl_class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError IsModifiableModule(jobject module,
|
|
|
|
|
jboolean* is_modifiable_module_ptr) {
|
|
|
|
|
return functions->IsModifiableModule(this, module, is_modifiable_module_ptr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError GetLoadedClasses(jint* class_count_ptr,
|
|
|
|
|
jclass** classes_ptr) {
|
|
|
|
|
return functions->GetLoadedClasses(this, class_count_ptr, classes_ptr);
|
|
|
|
@ -2484,8 +2572,8 @@ struct _jvmtiEnv {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError SetSystemProperty(const char* property,
|
|
|
|
|
const char* value) {
|
|
|
|
|
return functions->SetSystemProperty(this, property, value);
|
|
|
|
|
const char* value_ptr) {
|
|
|
|
|
return functions->SetSystemProperty(this, property, value_ptr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError GetPhase(jvmtiPhase* phase_ptr) {
|
|
|
|
@ -2522,6 +2610,10 @@ struct _jvmtiEnv {
|
|
|
|
|
return functions->GetJLocationFormat(this, format_ptr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jvmtiError SetHeapSamplingInterval(jint sampling_interval) {
|
|
|
|
|
return functions->SetHeapSamplingInterval(this, sampling_interval);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -2531,4 +2623,3 @@ struct _jvmtiEnv {
|
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
|
|
|
|
#endif /* !_JAVA_JVMTI_H_ */
|
|
|
|
|
|
|
|
|
|