Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes16kdownloads
jvmti.h2660 linesDownload Raw Back to include
1/*
2 * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.  Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 /* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */
27
28    /* Include file for the Java(tm) Virtual Machine Tool Interface */
29
30#ifndef _JAVA_JVMTI_H_
31#define _JAVA_JVMTI_H_
32
33#include "jni.h"
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39enum {
40    JVMTI_VERSION_1   = 0x30010000,
41    JVMTI_VERSION_1_0 = 0x30010000,
42    JVMTI_VERSION_1_1 = 0x30010100,
43    JVMTI_VERSION_1_2 = 0x30010200,
44    JVMTI_VERSION_9   = 0x30090000,
45    JVMTI_VERSION_11  = 0x300B0000,
46    JVMTI_VERSION_19  = 0x30130000,
47    JVMTI_VERSION_21  = 0x30150000,
48
49    JVMTI_VERSION = 0x30000000 + (23 * 0x10000) + ( 0 * 0x100) + 0  /* version: 23.0.0 */
50};
51
52JNIEXPORT jint JNICALL
53Agent_OnLoad(JavaVM *vm, char *options, void *reserved);
54
55JNIEXPORT jint JNICALL
56Agent_OnAttach(JavaVM* vm, char* options, void* reserved);
57
58JNIEXPORT void JNICALL
59Agent_OnUnload(JavaVM *vm);
60
61    /* Forward declaration of the environment */
62
63struct _jvmtiEnv;
64
65struct jvmtiInterface_1_;
66
67#ifdef __cplusplus
68typedef _jvmtiEnv jvmtiEnv;
69#else
70typedef const struct jvmtiInterface_1_ *jvmtiEnv;
71#endif /* __cplusplus */
72
73/* Derived Base Types */
74
75typedef jobject jthread;
76typedef jobject jthreadGroup;
77typedef jlong jlocation;
78struct _jrawMonitorID;
79typedef struct _jrawMonitorID *jrawMonitorID;
80typedef struct JNINativeInterface_ jniNativeInterface;
81
82    /* Constants */
83
84
85    /* Thread State Flags */
86
87enum {
88    JVMTI_THREAD_STATE_ALIVE = 0x0001,
89    JVMTI_THREAD_STATE_TERMINATED = 0x0002,
90    JVMTI_THREAD_STATE_RUNNABLE = 0x0004,
91    JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER = 0x0400,
92    JVMTI_THREAD_STATE_WAITING = 0x0080,
93    JVMTI_THREAD_STATE_WAITING_INDEFINITELY = 0x0010,
94    JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT = 0x0020,
95    JVMTI_THREAD_STATE_SLEEPING = 0x0040,
96    JVMTI_THREAD_STATE_IN_OBJECT_WAIT = 0x0100,
97    JVMTI_THREAD_STATE_PARKED = 0x0200,
98    JVMTI_THREAD_STATE_SUSPENDED = 0x100000,
99    JVMTI_THREAD_STATE_INTERRUPTED = 0x200000,
100    JVMTI_THREAD_STATE_IN_NATIVE = 0x400000,
101    JVMTI_THREAD_STATE_VENDOR_1 = 0x10000000,
102    JVMTI_THREAD_STATE_VENDOR_2 = 0x20000000,
103    JVMTI_THREAD_STATE_VENDOR_3 = 0x40000000
104};
105
106    /* java.lang.Thread.State Conversion Masks */
107
108enum {
109    JVMTI_JAVA_LANG_THREAD_STATE_MASK = JVMTI_THREAD_STATE_TERMINATED | JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT,
110    JVMTI_JAVA_LANG_THREAD_STATE_NEW = 0,
111    JVMTI_JAVA_LANG_THREAD_STATE_TERMINATED = JVMTI_THREAD_STATE_TERMINATED,
112    JVMTI_JAVA_LANG_THREAD_STATE_RUNNABLE = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE,
113    JVMTI_JAVA_LANG_THREAD_STATE_BLOCKED = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER,
114    JVMTI_JAVA_LANG_THREAD_STATE_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY,
115    JVMTI_JAVA_LANG_THREAD_STATE_TIMED_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT
116};
117
118    /* Thread Priority Constants */
119
120enum {
121    JVMTI_THREAD_MIN_PRIORITY = 1,
122    JVMTI_THREAD_NORM_PRIORITY = 5,
123    JVMTI_THREAD_MAX_PRIORITY = 10
124};
125
126    /* Heap Filter Flags */
127
128enum {
129    JVMTI_HEAP_FILTER_TAGGED = 0x4,
130    JVMTI_HEAP_FILTER_UNTAGGED = 0x8,
131    JVMTI_HEAP_FILTER_CLASS_TAGGED = 0x10,
132    JVMTI_HEAP_FILTER_CLASS_UNTAGGED = 0x20
133};
134
135    /* Heap Visit Control Flags */
136
137enum {
138    JVMTI_VISIT_OBJECTS = 0x100,
139    JVMTI_VISIT_ABORT = 0x8000
140};
141
142    /* Heap Reference Enumeration */
143
144typedef enum {
145    JVMTI_HEAP_REFERENCE_CLASS = 1,
146    JVMTI_HEAP_REFERENCE_FIELD = 2,
147    JVMTI_HEAP_REFERENCE_ARRAY_ELEMENT = 3,
148    JVMTI_HEAP_REFERENCE_CLASS_LOADER = 4,
149    JVMTI_HEAP_REFERENCE_SIGNERS = 5,
150    JVMTI_HEAP_REFERENCE_PROTECTION_DOMAIN = 6,
151    JVMTI_HEAP_REFERENCE_INTERFACE = 7,
152    JVMTI_HEAP_REFERENCE_STATIC_FIELD = 8,
153    JVMTI_HEAP_REFERENCE_CONSTANT_POOL = 9,
154    JVMTI_HEAP_REFERENCE_SUPERCLASS = 10,
155    JVMTI_HEAP_REFERENCE_JNI_GLOBAL = 21,
156    JVMTI_HEAP_REFERENCE_SYSTEM_CLASS = 22,
157    JVMTI_HEAP_REFERENCE_MONITOR = 23,
158    JVMTI_HEAP_REFERENCE_STACK_LOCAL = 24,
159    JVMTI_HEAP_REFERENCE_JNI_LOCAL = 25,
160    JVMTI_HEAP_REFERENCE_THREAD = 26,
161    JVMTI_HEAP_REFERENCE_OTHER = 27
162} jvmtiHeapReferenceKind;
163
164    /* Primitive Type Enumeration */
165
166typedef enum {
167    JVMTI_PRIMITIVE_TYPE_BOOLEAN = 90,
168    JVMTI_PRIMITIVE_TYPE_BYTE = 66,
169    JVMTI_PRIMITIVE_TYPE_CHAR = 67,
170    JVMTI_PRIMITIVE_TYPE_SHORT = 83,
171    JVMTI_PRIMITIVE_TYPE_INT = 73,
172    JVMTI_PRIMITIVE_TYPE_LONG = 74,
173    JVMTI_PRIMITIVE_TYPE_FLOAT = 70,
174    JVMTI_PRIMITIVE_TYPE_DOUBLE = 68
175} jvmtiPrimitiveType;
176
177    /* Heap Object Filter Enumeration */
178
179typedef enum {
180    JVMTI_HEAP_OBJECT_TAGGED = 1,
181    JVMTI_HEAP_OBJECT_UNTAGGED = 2,
182    JVMTI_HEAP_OBJECT_EITHER = 3
183} jvmtiHeapObjectFilter;
184
185    /* Heap Root Kind Enumeration */
186
187typedef enum {
188    JVMTI_HEAP_ROOT_JNI_GLOBAL = 1,
189    JVMTI_HEAP_ROOT_SYSTEM_CLASS = 2,
190    JVMTI_HEAP_ROOT_MONITOR = 3,
191    JVMTI_HEAP_ROOT_STACK_LOCAL = 4,
192    JVMTI_HEAP_ROOT_JNI_LOCAL = 5,
193    JVMTI_HEAP_ROOT_THREAD = 6,
194    JVMTI_HEAP_ROOT_OTHER = 7
195} jvmtiHeapRootKind;
196
197    /* Object Reference Enumeration */
198
199typedef enum {
200    JVMTI_REFERENCE_CLASS = 1,
201    JVMTI_REFERENCE_FIELD = 2,
202    JVMTI_REFERENCE_ARRAY_ELEMENT = 3,
203    JVMTI_REFERENCE_CLASS_LOADER = 4,
204    JVMTI_REFERENCE_SIGNERS = 5,
205    JVMTI_REFERENCE_PROTECTION_DOMAIN = 6,
206    JVMTI_REFERENCE_INTERFACE = 7,
207    JVMTI_REFERENCE_STATIC_FIELD = 8,
208    JVMTI_REFERENCE_CONSTANT_POOL = 9
209} jvmtiObjectReferenceKind;
210
211    /* Iteration Control Enumeration */
212
213typedef enum {
214    JVMTI_ITERATION_CONTINUE = 1,
215    JVMTI_ITERATION_IGNORE = 2,
216    JVMTI_ITERATION_ABORT = 0
217} jvmtiIterationControl;
218
219    /* Class Status Flags */
220
221enum {
222    JVMTI_CLASS_STATUS_VERIFIED = 1,
223    JVMTI_CLASS_STATUS_PREPARED = 2,
224    JVMTI_CLASS_STATUS_INITIALIZED = 4,
225    JVMTI_CLASS_STATUS_ERROR = 8,
226    JVMTI_CLASS_STATUS_ARRAY = 16,
227    JVMTI_CLASS_STATUS_PRIMITIVE = 32
228};
229
230    /* Event Enable/Disable */
231
232typedef enum {
233    JVMTI_ENABLE = 1,
234    JVMTI_DISABLE = 0
235} jvmtiEventMode;
236
237    /* Extension Function/Event Parameter Types */
238
239typedef enum {
240    JVMTI_TYPE_JBYTE = 101,
241    JVMTI_TYPE_JCHAR = 102,
242    JVMTI_TYPE_JSHORT = 103,
243    JVMTI_TYPE_JINT = 104,
244    JVMTI_TYPE_JLONG = 105,
245    JVMTI_TYPE_JFLOAT = 106,
246    JVMTI_TYPE_JDOUBLE = 107,
247    JVMTI_TYPE_JBOOLEAN = 108,
248    JVMTI_TYPE_JOBJECT = 109,
249    JVMTI_TYPE_JTHREAD = 110,
250    JVMTI_TYPE_JCLASS = 111,
251    JVMTI_TYPE_JVALUE = 112,
252    JVMTI_TYPE_JFIELDID = 113,
253    JVMTI_TYPE_JMETHODID = 114,
254    JVMTI_TYPE_CCHAR = 115,
255    JVMTI_TYPE_CVOID = 116,
256    JVMTI_TYPE_JNIENV = 117
257} jvmtiParamTypes;
258
259    /* Extension Function/Event Parameter Kinds */
260
261typedef enum {
262    JVMTI_KIND_IN = 91,
263    JVMTI_KIND_IN_PTR = 92,
264    JVMTI_KIND_IN_BUF = 93,
265    JVMTI_KIND_ALLOC_BUF = 94,
266    JVMTI_KIND_ALLOC_ALLOC_BUF = 95,
267    JVMTI_KIND_OUT = 96,
268    JVMTI_KIND_OUT_BUF = 97
269} jvmtiParamKind;
270
271    /* Timer Kinds */
272
273typedef enum {
274    JVMTI_TIMER_USER_CPU = 30,
275    JVMTI_TIMER_TOTAL_CPU = 31,
276    JVMTI_TIMER_ELAPSED = 32
277} jvmtiTimerKind;
278
279    /* Phases of execution */
280
281typedef enum {
282    JVMTI_PHASE_ONLOAD = 1,
283    JVMTI_PHASE_PRIMORDIAL = 2,
284    JVMTI_PHASE_START = 6,
285    JVMTI_PHASE_LIVE = 4,
286    JVMTI_PHASE_DEAD = 8
287} jvmtiPhase;
288
289    /* Version Interface Types */
290
291enum {
292    JVMTI_VERSION_INTERFACE_JNI = 0x00000000,
293    JVMTI_VERSION_INTERFACE_JVMTI = 0x30000000
294};
295
296    /* Version Masks */
297
298enum {
299    JVMTI_VERSION_MASK_INTERFACE_TYPE = 0x70000000,
300    JVMTI_VERSION_MASK_MAJOR = 0x0FFF0000,
301    JVMTI_VERSION_MASK_MINOR = 0x0000FF00,
302    JVMTI_VERSION_MASK_MICRO = 0x000000FF
303};
304
305    /* Version Shifts */
306
307enum {
308    JVMTI_VERSION_SHIFT_MAJOR = 16,
309    JVMTI_VERSION_SHIFT_MINOR = 8,
310    JVMTI_VERSION_SHIFT_MICRO = 0
311};
312
313    /* Verbose Flag Enumeration */
314
315typedef enum {
316    JVMTI_VERBOSE_OTHER = 0,
317    JVMTI_VERBOSE_GC = 1,
318    JVMTI_VERBOSE_CLASS = 2,
319    JVMTI_VERBOSE_JNI = 4
320} jvmtiVerboseFlag;
321
322    /* JLocation Format Enumeration */
323
324typedef enum {
325    JVMTI_JLOCATION_JVMBCI = 1,
326    JVMTI_JLOCATION_MACHINEPC = 2,
327    JVMTI_JLOCATION_OTHER = 0
328} jvmtiJlocationFormat;
329
330    /* Resource Exhaustion Flags */
331
332enum {
333    JVMTI_RESOURCE_EXHAUSTED_OOM_ERROR = 0x0001,
334    JVMTI_RESOURCE_EXHAUSTED_JAVA_HEAP = 0x0002,
335    JVMTI_RESOURCE_EXHAUSTED_THREADS = 0x0004
336};
337
338    /* Errors */
339
340typedef enum {
341    JVMTI_ERROR_NONE = 0,
342    JVMTI_ERROR_INVALID_THREAD = 10,
343    JVMTI_ERROR_INVALID_THREAD_GROUP = 11,
344    JVMTI_ERROR_INVALID_PRIORITY = 12,
345    JVMTI_ERROR_THREAD_NOT_SUSPENDED = 13,
346    JVMTI_ERROR_THREAD_SUSPENDED = 14,
347    JVMTI_ERROR_THREAD_NOT_ALIVE = 15,
348    JVMTI_ERROR_INVALID_OBJECT = 20,
349    JVMTI_ERROR_INVALID_CLASS = 21,
350    JVMTI_ERROR_CLASS_NOT_PREPARED = 22,
351    JVMTI_ERROR_INVALID_METHODID = 23,
352    JVMTI_ERROR_INVALID_LOCATION = 24,
353    JVMTI_ERROR_INVALID_FIELDID = 25,
354    JVMTI_ERROR_INVALID_MODULE = 26,
355    JVMTI_ERROR_NO_MORE_FRAMES = 31,
356    JVMTI_ERROR_OPAQUE_FRAME = 32,
357    JVMTI_ERROR_TYPE_MISMATCH = 34,
358    JVMTI_ERROR_INVALID_SLOT = 35,
359    JVMTI_ERROR_DUPLICATE = 40,
360    JVMTI_ERROR_NOT_FOUND = 41,
361    JVMTI_ERROR_INVALID_MONITOR = 50,
362    JVMTI_ERROR_NOT_MONITOR_OWNER = 51,
363    JVMTI_ERROR_INTERRUPT = 52,
364    JVMTI_ERROR_INVALID_CLASS_FORMAT = 60,
365    JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION = 61,
366    JVMTI_ERROR_FAILS_VERIFICATION = 62,
367    JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED = 63,
368    JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED = 64,
369    JVMTI_ERROR_INVALID_TYPESTATE = 65,
370    JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED = 66,
371    JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED = 67,
372    JVMTI_ERROR_UNSUPPORTED_VERSION = 68,
373    JVMTI_ERROR_NAMES_DONT_MATCH = 69,
374    JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70,
375    JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71,
376    JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED = 72,
377    JVMTI_ERROR_UNSUPPORTED_OPERATION = 73,
378    JVMTI_ERROR_UNMODIFIABLE_CLASS = 79,
379    JVMTI_ERROR_UNMODIFIABLE_MODULE = 80,
380    JVMTI_ERROR_NOT_AVAILABLE = 98,
381    JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99,
382    JVMTI_ERROR_NULL_POINTER = 100,
383    JVMTI_ERROR_ABSENT_INFORMATION = 101,
384    JVMTI_ERROR_INVALID_EVENT_TYPE = 102,
385    JVMTI_ERROR_ILLEGAL_ARGUMENT = 103,
386    JVMTI_ERROR_NATIVE_METHOD = 104,
387    JVMTI_ERROR_CLASS_LOADER_UNSUPPORTED = 106,
388    JVMTI_ERROR_OUT_OF_MEMORY = 110,
389    JVMTI_ERROR_ACCESS_DENIED = 111,
390    JVMTI_ERROR_WRONG_PHASE = 112,
391    JVMTI_ERROR_INTERNAL = 113,
392    JVMTI_ERROR_UNATTACHED_THREAD = 115,
393    JVMTI_ERROR_INVALID_ENVIRONMENT = 116,
394    JVMTI_ERROR_MAX = 116
395} jvmtiError;
396
397    /* Event IDs */
398
399typedef enum {
400    JVMTI_MIN_EVENT_TYPE_VAL = 50,
401    JVMTI_EVENT_VM_INIT = 50,
402    JVMTI_EVENT_VM_DEATH = 51,
403    JVMTI_EVENT_THREAD_START = 52,
404    JVMTI_EVENT_THREAD_END = 53,
405    JVMTI_EVENT_CLASS_FILE_LOAD_HOOK = 54,
406    JVMTI_EVENT_CLASS_LOAD = 55,
407    JVMTI_EVENT_CLASS_PREPARE = 56,
408    JVMTI_EVENT_VM_START = 57,
409    JVMTI_EVENT_EXCEPTION = 58,
410    JVMTI_EVENT_EXCEPTION_CATCH = 59,
411    JVMTI_EVENT_SINGLE_STEP = 60,
412    JVMTI_EVENT_FRAME_POP = 61,
413    JVMTI_EVENT_BREAKPOINT = 62,
414    JVMTI_EVENT_FIELD_ACCESS = 63,
415    JVMTI_EVENT_FIELD_MODIFICATION = 64,
416    JVMTI_EVENT_METHOD_ENTRY = 65,
417    JVMTI_EVENT_METHOD_EXIT = 66,
418    JVMTI_EVENT_NATIVE_METHOD_BIND = 67,
419    JVMTI_EVENT_COMPILED_METHOD_LOAD = 68,
420    JVMTI_EVENT_COMPILED_METHOD_UNLOAD = 69,
421    JVMTI_EVENT_DYNAMIC_CODE_GENERATED = 70,
422    JVMTI_EVENT_DATA_DUMP_REQUEST = 71,
423    JVMTI_EVENT_MONITOR_WAIT = 73,
424    JVMTI_EVENT_MONITOR_WAITED = 74,
425    JVMTI_EVENT_MONITOR_CONTENDED_ENTER = 75,
426    JVMTI_EVENT_MONITOR_CONTENDED_ENTERED = 76,
427    JVMTI_EVENT_RESOURCE_EXHAUSTED = 80,
428    JVMTI_EVENT_GARBAGE_COLLECTION_START = 81,
429    JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82,
430    JVMTI_EVENT_OBJECT_FREE = 83,
431    JVMTI_EVENT_VM_OBJECT_ALLOC = 84,
432    JVMTI_EVENT_SAMPLED_OBJECT_ALLOC = 86,
433    JVMTI_EVENT_VIRTUAL_THREAD_START = 87,
434    JVMTI_EVENT_VIRTUAL_THREAD_END = 88,
435    JVMTI_MAX_EVENT_TYPE_VAL = 88
436} jvmtiEvent;
437
438
439    /* Pre-Declarations */
440struct jvmtiThreadInfo;
441typedef struct jvmtiThreadInfo jvmtiThreadInfo;
442struct jvmtiMonitorStackDepthInfo;
443typedef struct jvmtiMonitorStackDepthInfo jvmtiMonitorStackDepthInfo;
444struct jvmtiThreadGroupInfo;
445typedef struct jvmtiThreadGroupInfo jvmtiThreadGroupInfo;
446struct jvmtiFrameInfo;
447typedef struct jvmtiFrameInfo jvmtiFrameInfo;
448struct jvmtiStackInfo;
449typedef struct jvmtiStackInfo jvmtiStackInfo;
450struct jvmtiHeapReferenceInfoField;
451typedef struct jvmtiHeapReferenceInfoField jvmtiHeapReferenceInfoField;
452struct jvmtiHeapReferenceInfoArray;
453typedef struct jvmtiHeapReferenceInfoArray jvmtiHeapReferenceInfoArray;
454struct jvmtiHeapReferenceInfoConstantPool;
455typedef struct jvmtiHeapReferenceInfoConstantPool jvmtiHeapReferenceInfoConstantPool;
456struct jvmtiHeapReferenceInfoStackLocal;
457typedef struct jvmtiHeapReferenceInfoStackLocal jvmtiHeapReferenceInfoStackLocal;
458struct jvmtiHeapReferenceInfoJniLocal;
459typedef struct jvmtiHeapReferenceInfoJniLocal jvmtiHeapReferenceInfoJniLocal;
460struct jvmtiHeapReferenceInfoReserved;
461typedef struct jvmtiHeapReferenceInfoReserved jvmtiHeapReferenceInfoReserved;
462union jvmtiHeapReferenceInfo;
463typedef union jvmtiHeapReferenceInfo jvmtiHeapReferenceInfo;
464struct jvmtiHeapCallbacks;
465typedef struct jvmtiHeapCallbacks jvmtiHeapCallbacks;
466struct jvmtiClassDefinition;
467typedef struct jvmtiClassDefinition jvmtiClassDefinition;
468struct jvmtiMonitorUsage;
469typedef struct jvmtiMonitorUsage jvmtiMonitorUsage;
470struct jvmtiLineNumberEntry;
471typedef struct jvmtiLineNumberEntry jvmtiLineNumberEntry;
472struct jvmtiLocalVariableEntry;
473typedef struct jvmtiLocalVariableEntry jvmtiLocalVariableEntry;
474struct jvmtiParamInfo;
475typedef struct jvmtiParamInfo jvmtiParamInfo;
476struct jvmtiExtensionFunctionInfo;
477typedef struct jvmtiExtensionFunctionInfo jvmtiExtensionFunctionInfo;
478struct jvmtiExtensionEventInfo;
479typedef struct jvmtiExtensionEventInfo jvmtiExtensionEventInfo;
480struct jvmtiTimerInfo;
481typedef struct jvmtiTimerInfo jvmtiTimerInfo;
482struct jvmtiAddrLocationMap;
483typedef struct jvmtiAddrLocationMap jvmtiAddrLocationMap;
484
485    /* Function Types */
486
487typedef void (JNICALL *jvmtiStartFunction)
488    (jvmtiEnv* jvmti_env, JNIEnv* jni_env, void* arg);
489
490typedef jint (JNICALL *jvmtiHeapIterationCallback)
491    (jlong class_tag, jlong size, jlong* tag_ptr, jint length, void* user_data);
492
493typedef jint (JNICALL *jvmtiHeapReferenceCallback)
494    (jvmtiHeapReferenceKind reference_kind, const jvmtiHeapReferenceInfo* reference_info, jlong class_tag, jlong referrer_class_tag, jlong size, jlong* tag_ptr, jlong* referrer_tag_ptr, jint length, void* user_data);
495
496typedef jint (JNICALL *jvmtiPrimitiveFieldCallback)
497    (jvmtiHeapReferenceKind kind, const jvmtiHeapReferenceInfo* info, jlong object_class_tag, jlong* object_tag_ptr, jvalue value, jvmtiPrimitiveType value_type, void* user_data);
498
499typedef jint (JNICALL *jvmtiArrayPrimitiveValueCallback)
500    (jlong class_tag, jlong size, jlong* tag_ptr, jint element_count, jvmtiPrimitiveType element_type, const void* elements, void* user_data);
501
502typedef jint (JNICALL *jvmtiStringPrimitiveValueCallback)
503    (jlong class_tag, jlong size, jlong* tag_ptr, const jchar* value, jint value_length, void* user_data);
504
505typedef jint (JNICALL *jvmtiReservedCallback)
506    ();
507
508typedef jvmtiIterationControl (JNICALL *jvmtiHeapObjectCallback)
509    (jlong class_tag, jlong size, jlong* tag_ptr, void* user_data);
510
511typedef jvmtiIterationControl (JNICALL *jvmtiHeapRootCallback)
512    (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong* tag_ptr, void* user_data);
513
514typedef jvmtiIterationControl (JNICALL *jvmtiStackReferenceCallback)
515    (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong* tag_ptr, jlong thread_tag, jint depth, jmethodID method, jint slot, void* user_data);
516
517typedef jvmtiIterationControl (JNICALL *jvmtiObjectReferenceCallback)
518    (jvmtiObjectReferenceKind reference_kind, jlong class_tag, jlong size, jlong* tag_ptr, jlong referrer_tag, jint referrer_index, void* user_data);
519
520typedef jvmtiError (JNICALL *jvmtiExtensionFunction)
521    (jvmtiEnv* jvmti_env,  ...);
522
523typedef void (JNICALL *jvmtiExtensionEvent)
524    (jvmtiEnv* jvmti_env,  ...);
525
526
527    /* Structure Types */
528struct jvmtiThreadInfo {
529    char* name;
530    jint priority;
531    jboolean is_daemon;
532    jthreadGroup thread_group;
533    jobject context_class_loader;
534};
535struct jvmtiMonitorStackDepthInfo {
536    jobject monitor;
537    jint stack_depth;
538};
539struct jvmtiThreadGroupInfo {
540    jthreadGroup parent;
541    char* name;
542    jint max_priority;
543    jboolean is_daemon;
544};
545struct jvmtiFrameInfo {
546    jmethodID method;
547    jlocation location;
548};
549struct jvmtiStackInfo {
550    jthread thread;
551    jint state;
552    jvmtiFrameInfo* frame_buffer;
553    jint frame_count;
554};
555struct jvmtiHeapReferenceInfoField {
556    jint index;
557};
558struct jvmtiHeapReferenceInfoArray {
559    jint index;
560};
561struct jvmtiHeapReferenceInfoConstantPool {
562    jint index;
563};
564struct jvmtiHeapReferenceInfoStackLocal {
565    jlong thread_tag;
566    jlong thread_id;
567    jint depth;
568    jmethodID method;
569    jlocation location;
570    jint slot;
571};
572struct jvmtiHeapReferenceInfoJniLocal {
573    jlong thread_tag;
574    jlong thread_id;
575    jint depth;
576    jmethodID method;
577};
578struct jvmtiHeapReferenceInfoReserved {
579    jlong reserved1;
580    jlong reserved2;
581    jlong reserved3;
582    jlong reserved4;
583    jlong reserved5;
584    jlong reserved6;
585    jlong reserved7;
586    jlong reserved8;
587};
588union jvmtiHeapReferenceInfo {
589    jvmtiHeapReferenceInfoField field;
590    jvmtiHeapReferenceInfoArray array;
591    jvmtiHeapReferenceInfoConstantPool constant_pool;
592    jvmtiHeapReferenceInfoStackLocal stack_local;
593    jvmtiHeapReferenceInfoJniLocal jni_local;
594    jvmtiHeapReferenceInfoReserved other;
595};
596struct jvmtiHeapCallbacks {
597    jvmtiHeapIterationCallback heap_iteration_callback;
598    jvmtiHeapReferenceCallback heap_reference_callback;
599    jvmtiPrimitiveFieldCallback primitive_field_callback;
600    jvmtiArrayPrimitiveValueCallback array_primitive_value_callback;
601    jvmtiStringPrimitiveValueCallback string_primitive_value_callback;
602    jvmtiReservedCallback reserved5;
603    jvmtiReservedCallback reserved6;
604    jvmtiReservedCallback reserved7;
605    jvmtiReservedCallback reserved8;
606    jvmtiReservedCallback reserved9;
607    jvmtiReservedCallback reserved10;
608    jvmtiReservedCallback reserved11;
609    jvmtiReservedCallback reserved12;
610    jvmtiReservedCallback reserved13;
611    jvmtiReservedCallback reserved14;
612    jvmtiReservedCallback reserved15;
613};
614struct jvmtiClassDefinition {
615    jclass klass;
616    jint class_byte_count;
617    const unsigned char* class_bytes;
618};
619struct jvmtiMonitorUsage {
620    jthread owner;
621    jint entry_count;
622    jint waiter_count;
623    jthread* waiters;
624    jint notify_waiter_count;
625    jthread* notify_waiters;
626};
627struct jvmtiLineNumberEntry {
628    jlocation start_location;
629    jint line_number;
630};
631struct jvmtiLocalVariableEntry {
632    jlocation start_location;
633    jint length;
634    char* name;
635    char* signature;
636    char* generic_signature;
637    jint slot;
638};
639struct jvmtiParamInfo {
640    char* name;
641    jvmtiParamKind kind;
642    jvmtiParamTypes base_type;
643    jboolean null_ok;
644};
645struct jvmtiExtensionFunctionInfo {
646    jvmtiExtensionFunction func;
647    char* id;
648    char* short_description;
649    jint param_count;
650    jvmtiParamInfo* params;
651    jint error_count;
652    jvmtiError* errors;
653};
654struct jvmtiExtensionEventInfo {
655    jint extension_event_index;
656    char* id;
657    char* short_description;
658    jint param_count;
659    jvmtiParamInfo* params;
660};
661struct jvmtiTimerInfo {
662    jlong max_value;
663    jboolean may_skip_forward;
664    jboolean may_skip_backward;
665    jvmtiTimerKind kind;
666    jlong reserved1;
667    jlong reserved2;
668};
669struct jvmtiAddrLocationMap {
670    const void* start_address;
671    jlocation location;
672};
673
674typedef struct {
675    unsigned int can_tag_objects : 1;
676    unsigned int can_generate_field_modification_events : 1;
677    unsigned int can_generate_field_access_events : 1;
678    unsigned int can_get_bytecodes : 1;
679    unsigned int can_get_synthetic_attribute : 1;
680    unsigned int can_get_owned_monitor_info : 1;
681    unsigned int can_get_current_contended_monitor : 1;
682    unsigned int can_get_monitor_info : 1;
683    unsigned int can_pop_frame : 1;
684    unsigned int can_redefine_classes : 1;
685    unsigned int can_signal_thread : 1;
686    unsigned int can_get_source_file_name : 1;
687    unsigned int can_get_line_numbers : 1;
688    unsigned int can_get_source_debug_extension : 1;
689    unsigned int can_access_local_variables : 1;
690    unsigned int can_maintain_original_method_order : 1;
691    unsigned int can_generate_single_step_events : 1;
692    unsigned int can_generate_exception_events : 1;
693    unsigned int can_generate_frame_pop_events : 1;
694    unsigned int can_generate_breakpoint_events : 1;
695    unsigned int can_suspend : 1;
696    unsigned int can_redefine_any_class : 1;
697    unsigned int can_get_current_thread_cpu_time : 1;
698    unsigned int can_get_thread_cpu_time : 1;
699    unsigned int can_generate_method_entry_events : 1;
700    unsigned int can_generate_method_exit_events : 1;
701    unsigned int can_generate_all_class_hook_events : 1;
702    unsigned int can_generate_compiled_method_load_events : 1;
703    unsigned int can_generate_monitor_events : 1;
704    unsigned int can_generate_vm_object_alloc_events : 1;
705    unsigned int can_generate_native_method_bind_events : 1;
706    unsigned int can_generate_garbage_collection_events : 1;
707    unsigned int can_generate_object_free_events : 1;
708    unsigned int can_force_early_return : 1;
709    unsigned int can_get_owned_monitor_stack_depth_info : 1;
710    unsigned int can_get_constant_pool : 1;
711    unsigned int can_set_native_method_prefix : 1;
712    unsigned int can_retransform_classes : 1;
713    unsigned int can_retransform_any_class : 1;
714    unsigned int can_generate_resource_exhaustion_heap_events : 1;
715    unsigned int can_generate_resource_exhaustion_threads_events : 1;
716    unsigned int can_generate_early_vmstart : 1;
717    unsigned int can_generate_early_class_hook_events : 1;
718    unsigned int can_generate_sampled_object_alloc_events : 1;
719    unsigned int can_support_virtual_threads : 1;
720    unsigned int : 3;
721    unsigned int : 16;
722    unsigned int : 16;
723    unsigned int : 16;
724    unsigned int : 16;
725    unsigned int : 16;
726} jvmtiCapabilities;
727
728
729    /* Event Definitions */
730
731typedef void (JNICALL *jvmtiEventReserved)(void);
732
733
734typedef void (JNICALL *jvmtiEventBreakpoint)
735    (jvmtiEnv *jvmti_env,
736     JNIEnv* jni_env,
737     jthread thread,
738     jmethodID method,
739     jlocation location);
740
741typedef void (JNICALL *jvmtiEventClassFileLoadHook)
742    (jvmtiEnv *jvmti_env,
743     JNIEnv* jni_env,
744     jclass class_being_redefined,
745     jobject loader,
746     const char* name,
747     jobject protection_domain,
748     jint class_data_len,
749     const unsigned char* class_data,
750     jint* new_class_data_len,
751     unsigned char** new_class_data);
752
753typedef void (JNICALL *jvmtiEventClassLoad)
754    (jvmtiEnv *jvmti_env,
755     JNIEnv* jni_env,
756     jthread thread,
757     jclass klass);
758
759typedef void (JNICALL *jvmtiEventClassPrepare)
760    (jvmtiEnv *jvmti_env,
761     JNIEnv* jni_env,
762     jthread thread,
763     jclass klass);
764
765typedef void (JNICALL *jvmtiEventCompiledMethodLoad)
766    (jvmtiEnv *jvmti_env,
767     jmethodID method,
768     jint code_size,
769     const void* code_addr,
770     jint map_length,
771     const jvmtiAddrLocationMap* map,
772     const void* compile_info);
773
774typedef void (JNICALL *jvmtiEventCompiledMethodUnload)
775    (jvmtiEnv *jvmti_env,
776     jmethodID method,
777     const void* code_addr);
778
779typedef void (JNICALL *jvmtiEventDataDumpRequest)
780    (jvmtiEnv *jvmti_env);
781
782typedef void (JNICALL *jvmtiEventDynamicCodeGenerated)
783    (jvmtiEnv *jvmti_env,
784     const char* name,
785     const void* address,
786     jint length);
787
788typedef void (JNICALL *jvmtiEventException)
789    (jvmtiEnv *jvmti_env,
790     JNIEnv* jni_env,
791     jthread thread,
792     jmethodID method,
793     jlocation location,
794     jobject exception,
795     jmethodID catch_method,
796     jlocation catch_location);
797
798typedef void (JNICALL *jvmtiEventExceptionCatch)
799    (jvmtiEnv *jvmti_env,
800     JNIEnv* jni_env,
801     jthread thread,
802     jmethodID method,
803     jlocation location,
804     jobject exception);
805
806typedef void (JNICALL *jvmtiEventFieldAccess)
807    (jvmtiEnv *jvmti_env,
808     JNIEnv* jni_env,
809     jthread thread,
810     jmethodID method,
811     jlocation location,
812     jclass field_klass,
813     jobject object,
814     jfieldID field);
815
816typedef void (JNICALL *jvmtiEventFieldModification)
817    (jvmtiEnv *jvmti_env,
818     JNIEnv* jni_env,
819     jthread thread,
820     jmethodID method,
821     jlocation location,
822     jclass field_klass,
823     jobject object,
824     jfieldID field,
825     char signature_type,
826     jvalue new_value);
827
828typedef void (JNICALL *jvmtiEventFramePop)
829    (jvmtiEnv *jvmti_env,
830     JNIEnv* jni_env,
831     jthread thread,
832     jmethodID method,
833     jboolean was_popped_by_exception);
834
835typedef void (JNICALL *jvmtiEventGarbageCollectionFinish)
836    (jvmtiEnv *jvmti_env);
837
838typedef void (JNICALL *jvmtiEventGarbageCollectionStart)
839    (jvmtiEnv *jvmti_env);
840
841typedef void (JNICALL *jvmtiEventMethodEntry)
842    (jvmtiEnv *jvmti_env,
843     JNIEnv* jni_env,
844     jthread thread,
845     jmethodID method);
846
847typedef void (JNICALL *jvmtiEventMethodExit)
848    (jvmtiEnv *jvmti_env,
849     JNIEnv* jni_env,
850     jthread thread,
851     jmethodID method,
852     jboolean was_popped_by_exception,
853     jvalue return_value);
854
855typedef void (JNICALL *jvmtiEventMonitorContendedEnter)
856    (jvmtiEnv *jvmti_env,
857     JNIEnv* jni_env,
858     jthread thread,
859     jobject object);
860
861typedef void (JNICALL *jvmtiEventMonitorContendedEntered)
862    (jvmtiEnv *jvmti_env,
863     JNIEnv* jni_env,
864     jthread thread,
865     jobject object);
866
867typedef void (JNICALL *jvmtiEventMonitorWait)
868    (jvmtiEnv *jvmti_env,
869     JNIEnv* jni_env,
870     jthread thread,
871     jobject object,
872     jlong timeout);
873
874typedef void (JNICALL *jvmtiEventMonitorWaited)
875    (jvmtiEnv *jvmti_env,
876     JNIEnv* jni_env,
877     jthread thread,
878     jobject object,
879     jboolean timed_out);
880
881typedef void (JNICALL *jvmtiEventNativeMethodBind)
882    (jvmtiEnv *jvmti_env,
883     JNIEnv* jni_env,
884     jthread thread,
885     jmethodID method,
886     void* address,
887     void** new_address_ptr);
888
889typedef void (JNICALL *jvmtiEventObjectFree)
890    (jvmtiEnv *jvmti_env,
891     jlong tag);
892
893typedef void (JNICALL *jvmtiEventResourceExhausted)
894    (jvmtiEnv *jvmti_env,
895     JNIEnv* jni_env,
896     jint flags,
897     const void* reserved,
898     const char* description);
899
900typedef void (JNICALL *jvmtiEventSampledObjectAlloc)
901    (jvmtiEnv *jvmti_env,
902     JNIEnv* jni_env,
903     jthread thread,
904     jobject object,
905     jclass object_klass,
906     jlong size);
907
908typedef void (JNICALL *jvmtiEventSingleStep)
909    (jvmtiEnv *jvmti_env,
910     JNIEnv* jni_env,
911     jthread thread,
912     jmethodID method,
913     jlocation location);
914
915typedef void (JNICALL *jvmtiEventThreadEnd)
916    (jvmtiEnv *jvmti_env,
917     JNIEnv* jni_env,
918     jthread thread);
919
920typedef void (JNICALL *jvmtiEventThreadStart)
921    (jvmtiEnv *jvmti_env,
922     JNIEnv* jni_env,
923     jthread thread);
924
925typedef void (JNICALL *jvmtiEventVirtualThreadEnd)
926    (jvmtiEnv *jvmti_env,
927     JNIEnv* jni_env,
928     jthread virtual_thread);
929
930typedef void (JNICALL *jvmtiEventVirtualThreadStart)
931    (jvmtiEnv *jvmti_env,
932     JNIEnv* jni_env,
933     jthread virtual_thread);
934
935typedef void (JNICALL *jvmtiEventVMDeath)
936    (jvmtiEnv *jvmti_env,
937     JNIEnv* jni_env);
938
939typedef void (JNICALL *jvmtiEventVMInit)
940    (jvmtiEnv *jvmti_env,
941     JNIEnv* jni_env,
942     jthread thread);
943
944typedef void (JNICALL *jvmtiEventVMObjectAlloc)
945    (jvmtiEnv *jvmti_env,
946     JNIEnv* jni_env,
947     jthread thread,
948     jobject object,
949     jclass object_klass,
950     jlong size);
951
952typedef void (JNICALL *jvmtiEventVMStart)
953    (jvmtiEnv *jvmti_env,
954     JNIEnv* jni_env);
955
956    /* Event Callback Structure */
957
958typedef struct {
959                              /*   50 : VM Initialization Event */
960    jvmtiEventVMInit VMInit;
961                              /*   51 : VM Death Event */
962    jvmtiEventVMDeath VMDeath;
963                              /*   52 : Thread Start */
964    jvmtiEventThreadStart ThreadStart;
965                              /*   53 : Thread End */
966    jvmtiEventThreadEnd ThreadEnd;
967                              /*   54 : Class File Load Hook */
968    jvmtiEventClassFileLoadHook ClassFileLoadHook;
969                              /*   55 : Class Load */
970    jvmtiEventClassLoad ClassLoad;
971                              /*   56 : Class Prepare */
972    jvmtiEventClassPrepare ClassPrepare;
973                              /*   57 : VM Start Event */
974    jvmtiEventVMStart VMStart;
975                              /*   58 : Exception */
976    jvmtiEventException Exception;
977                              /*   59 : Exception Catch */
978    jvmtiEventExceptionCatch ExceptionCatch;
979                              /*   60 : Single Step */
980    jvmtiEventSingleStep SingleStep;
981                              /*   61 : Frame Pop */
982    jvmtiEventFramePop FramePop;
983                              /*   62 : Breakpoint */
984    jvmtiEventBreakpoint Breakpoint;
985                              /*   63 : Field Access */
986    jvmtiEventFieldAccess FieldAccess;
987                              /*   64 : Field Modification */
988    jvmtiEventFieldModification FieldModification;
989                              /*   65 : Method Entry */
990    jvmtiEventMethodEntry MethodEntry;
991                              /*   66 : Method Exit */
992    jvmtiEventMethodExit MethodExit;
993                              /*   67 : Native Method Bind */
994    jvmtiEventNativeMethodBind NativeMethodBind;
995                              /*   68 : Compiled Method Load */
996    jvmtiEventCompiledMethodLoad CompiledMethodLoad;
997                              /*   69 : Compiled Method Unload */
998    jvmtiEventCompiledMethodUnload CompiledMethodUnload;
999                              /*   70 : Dynamic Code Generated */
1000    jvmtiEventDynamicCodeGenerated DynamicCodeGenerated;
1001                              /*   71 : Data Dump Request */
1002    jvmtiEventDataDumpRequest DataDumpRequest;
1003                              /*   72 */
1004    jvmtiEventReserved reserved72;
1005                              /*   73 : Monitor Wait */
1006    jvmtiEventMonitorWait MonitorWait;
1007                              /*   74 : Monitor Waited */
1008    jvmtiEventMonitorWaited MonitorWaited;
1009                              /*   75 : Monitor Contended Enter */
1010    jvmtiEventMonitorContendedEnter MonitorContendedEnter;
1011                              /*   76 : Monitor Contended Entered */
1012    jvmtiEventMonitorContendedEntered MonitorContendedEntered;
1013                              /*   77 */
1014    jvmtiEventReserved reserved77;
1015                              /*   78 */
1016    jvmtiEventReserved reserved78;
1017                              /*   79 */
1018    jvmtiEventReserved reserved79;
1019                              /*   80 : Resource Exhausted */
1020    jvmtiEventResourceExhausted ResourceExhausted;
1021                              /*   81 : Garbage Collection Start */
1022    jvmtiEventGarbageCollectionStart GarbageCollectionStart;
1023                              /*   82 : Garbage Collection Finish */
1024    jvmtiEventGarbageCollectionFinish GarbageCollectionFinish;
1025                              /*   83 : Object Free */
1026    jvmtiEventObjectFree ObjectFree;
1027                              /*   84 : VM Object Allocation */
1028    jvmtiEventVMObjectAlloc VMObjectAlloc;
1029                              /*   85 */
1030    jvmtiEventReserved reserved85;
1031                              /*   86 : Sampled Object Allocation */
1032    jvmtiEventSampledObjectAlloc SampledObjectAlloc;
1033                              /*   87 : Virtual Thread Start */
1034    jvmtiEventVirtualThreadStart VirtualThreadStart;
1035                              /*   88 : Virtual Thread End */
1036    jvmtiEventVirtualThreadEnd VirtualThreadEnd;
1037} jvmtiEventCallbacks;
1038
1039
1040    /* Function Interface */
1041
1042typedef struct jvmtiInterface_1_ {
1043
1044  /*   1 :  RESERVED */
1045  void *reserved1;
1046
1047  /*   2 : Set Event Notification Mode */
1048  jvmtiError (JNICALL *SetEventNotificationMode) (jvmtiEnv* env,
1049    jvmtiEventMode mode,
1050    jvmtiEvent event_type,
1051    jthread event_thread,
1052     ...);
1053
1054  /*   3 : Get All Modules */
1055  jvmtiError (JNICALL *GetAllModules) (jvmtiEnv* env,
1056    jint* module_count_ptr,
1057    jobject** modules_ptr);
1058
1059  /*   4 : Get All Threads */
1060  jvmtiError (JNICALL *GetAllThreads) (jvmtiEnv* env,
1061    jint* threads_count_ptr,
1062    jthread** threads_ptr);
1063
1064  /*   5 : Suspend Thread */
1065  jvmtiError (JNICALL *SuspendThread) (jvmtiEnv* env,
1066    jthread thread);
1067
1068  /*   6 : Resume Thread */
1069  jvmtiError (JNICALL *ResumeThread) (jvmtiEnv* env,
1070    jthread thread);
1071
1072  /*   7 : Stop Thread */
1073  jvmtiError (JNICALL *StopThread) (jvmtiEnv* env,
1074    jthread thread,
1075    jobject exception);
1076
1077  /*   8 : Interrupt Thread */
1078  jvmtiError (JNICALL *InterruptThread) (jvmtiEnv* env,
1079    jthread thread);
1080
1081  /*   9 : Get Thread Info */
1082  jvmtiError (JNICALL *GetThreadInfo) (jvmtiEnv* env,
1083    jthread thread,
1084    jvmtiThreadInfo* info_ptr);
1085
1086  /*   10 : Get Owned Monitor Info */
1087  jvmtiError (JNICALL *GetOwnedMonitorInfo) (jvmtiEnv* env,
1088    jthread thread,
1089    jint* owned_monitor_count_ptr,
1090    jobject** owned_monitors_ptr);
1091
1092  /*   11 : Get Current Contended Monitor */
1093  jvmtiError (JNICALL *GetCurrentContendedMonitor) (jvmtiEnv* env,
1094    jthread thread,
1095    jobject* monitor_ptr);
1096
1097  /*   12 : Run Agent Thread */
1098  jvmtiError (JNICALL *RunAgentThread) (jvmtiEnv* env,
1099    jthread thread,
1100    jvmtiStartFunction proc,
1101    const void* arg,
1102    jint priority);
1103
1104  /*   13 : Get Top Thread Groups */
1105  jvmtiError (JNICALL *GetTopThreadGroups) (jvmtiEnv* env,
1106    jint* group_count_ptr,
1107    jthreadGroup** groups_ptr);
1108
1109  /*   14 : Get Thread Group Info */
1110  jvmtiError (JNICALL *GetThreadGroupInfo) (jvmtiEnv* env,
1111    jthreadGroup group,
1112    jvmtiThreadGroupInfo* info_ptr);
1113
1114  /*   15 : Get Thread Group Children */
1115  jvmtiError (JNICALL *GetThreadGroupChildren) (jvmtiEnv* env,
1116    jthreadGroup group,
1117    jint* thread_count_ptr,
1118    jthread** threads_ptr,
1119    jint* group_count_ptr,
1120    jthreadGroup** groups_ptr);
1121
1122  /*   16 : Get Frame Count */
1123  jvmtiError (JNICALL *GetFrameCount) (jvmtiEnv* env,
1124    jthread thread,
1125    jint* count_ptr);
1126
1127  /*   17 : Get Thread State */
1128  jvmtiError (JNICALL *GetThreadState) (jvmtiEnv* env,
1129    jthread thread,
1130    jint* thread_state_ptr);
1131
1132  /*   18 : Get Current Thread */
1133  jvmtiError (JNICALL *GetCurrentThread) (jvmtiEnv* env,
1134    jthread* thread_ptr);
1135
1136  /*   19 : Get Frame Location */
1137  jvmtiError (JNICALL *GetFrameLocation) (jvmtiEnv* env,
1138    jthread thread,
1139    jint depth,
1140    jmethodID* method_ptr,
1141    jlocation* location_ptr);
1142
1143  /*   20 : Notify Frame Pop */
1144  jvmtiError (JNICALL *NotifyFramePop) (jvmtiEnv* env,
1145    jthread thread,
1146    jint depth);
1147
1148  /*   21 : Get Local Variable - Object */
1149  jvmtiError (JNICALL *GetLocalObject) (jvmtiEnv* env,
1150    jthread thread,
1151    jint depth,
1152    jint slot,
1153    jobject* value_ptr);
1154
1155  /*   22 : Get Local Variable - Int */
1156  jvmtiError (JNICALL *GetLocalInt) (jvmtiEnv* env,
1157    jthread thread,
1158    jint depth,
1159    jint slot,
1160    jint* value_ptr);
1161
1162  /*   23 : Get Local Variable - Long */
1163  jvmtiError (JNICALL *GetLocalLong) (jvmtiEnv* env,
1164    jthread thread,
1165    jint depth,
1166    jint slot,
1167    jlong* value_ptr);
1168
1169  /*   24 : Get Local Variable - Float */
1170  jvmtiError (JNICALL *GetLocalFloat) (jvmtiEnv* env,
1171    jthread thread,
1172    jint depth,
1173    jint slot,
1174    jfloat* value_ptr);
1175
1176  /*   25 : Get Local Variable - Double */
1177  jvmtiError (JNICALL *GetLocalDouble) (jvmtiEnv* env,
1178    jthread thread,
1179    jint depth,
1180    jint slot,
1181    jdouble* value_ptr);
1182
1183  /*   26 : Set Local Variable - Object */
1184  jvmtiError (JNICALL *SetLocalObject) (jvmtiEnv* env,
1185    jthread thread,
1186    jint depth,
1187    jint slot,
1188    jobject value);
1189
1190  /*   27 : Set Local Variable - Int */
1191  jvmtiError (JNICALL *SetLocalInt) (jvmtiEnv* env,
1192    jthread thread,
1193    jint depth,
1194    jint slot,
1195    jint value);
1196
1197  /*   28 : Set Local Variable - Long */
1198  jvmtiError (JNICALL *SetLocalLong) (jvmtiEnv* env,
1199    jthread thread,
1200    jint depth,

Showing the first 1,200 of 2660 lines. Download the file for the rest.

codekingpro/portable-devtools · Team Ai