The following tables describe implementation status for JVMTI features specific for different platforms and VM execution modes.
For the description of JVMTI features (capabilities, events, functions) see JVMTI spec on
http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html
Notes:
JET - means Jitrino/JET JIT mode
OPT - Jitrino/OPT
+ - means that the feature is implemented for corresponding platform and mode.
Capabilities
# |
Name |
Windows / Linux IA32 |
Windows / Linux x86_64 |
Linux IA64 |
|||||
Interpreter |
JET |
OPT |
Interpreter |
JET |
OPT |
Interpreter |
JIT |
||
1 |
can_tag_objects |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
2 |
can_generate_field_modification_events |
+ |
+ |
|
+ |
|
|
+ |
|
3 |
can_generate_field_access_events |
+ |
+ |
|
+ |
|
|
+ |
|
4 |
can_get_bytecodes |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
5 |
can_get_synthetic_attribute |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
6 |
can_get_owned_monitor_info |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
7 |
can_get_current_contended_monitor |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
8 |
can_get_monitor_info |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
9 |
can_pop_frame |
+ |
+ |
|
+ |
|
|
+ |
|
10 |
can_redefine_classes |
|
|
|
|
|
|
|
|
11 |
can_signal_thread |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
12 |
can_get_source_file_name |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
13 |
can_get_line_numbers |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
14 |
can_get_source_debug_extension |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
15 |
can_access_local_variables |
+ |
+ |
|
+ |
|
|
+ |
|
16 |
can_maintain_original_method_order |
|
|
|
|
|
|
|
|
17 |
can_generate_single_step_events |
+ |
+ |
|
+ |
|
|
+ |
|
18 |
can_generate_exception_events |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
19 |
can_generate_frame_pop_events |
+ |
+ |
|
+ |
|
|
+ |
|
20 |
can_generate_breakpoint_events |
+ |
+ |
|
+ |
|
|
+ |
|
21 |
can_suspend |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
22 |
can_redefine_any_class |
|
|
|
|
|
|
|
|
23 |
can_get_current_thread_cpu_time |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
24 |
can_get_thread_cpu_time |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
25 |
can_generate_method_entry_events |
+ |
+ |
|
+ |
|
|
+ |
|
26 |
can_generate_method_exit_events |
+ |
+ |
|
+ |
|
|
+ |
|
27 |
can_generate_all_class_hook_events |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
28 |
can_generate_compiled_method_load_events |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
29 |
can_generate_monitor_events |
+ |
+ |
|
+ |
+ |
|
+ |
|
30 |
can_generate_vm_object_alloc_events |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
31 |
can_generate_native_method_bind_events |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
32 |
can_generate_garbage_collection_events |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
33 |
can_generate_object_free_events |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Events
# |
Name |
Windows / Linux IA32 |
Windows / Linux x86_64 |
Linux IA64 |
|||||
Interpreter |
JET |
OPT |
Interpreter |
JET |
OPT |
Interpreter |
JIT |
||
1 |
Breakpoint |
+ |
+ |
|
+ |
|
|
+ |
|
2 |
Class File Load Hook |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
3 |
Class Load |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
4 |
Class Prepare |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
5 |
Compiled Method Load |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
6 |
Compiled Method Unload |
|
|
|
|
|
|
|
|
7 |
Data Dump Request |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
8 |
Dynamic Code Generated |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
9 |
Exception |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
10 |
Exception Catch |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
11 |
Field Access |
+ |
+ |
|
+ |
|
|
+ |
|
12 |
Field Modification |
+ |
+ |
|
+ |
|
|
+ |
|
13 |
Frame Pop |
+ |
+ |
|
+ |
|
|
+ |
|
14 |
Garbage Collection Finished |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
15 |
Garbage Collection Start |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
16 |
Method Entry |
+ |
+ |
|
+ |
|
|
+ |
|
17 |
Method Exit |
+ |
+ |
|
+ |
|
|
+ |
|
18 |
Monitor Contended Enter |
+ |
+ |
|
+ |
+ |
|
+ |
|
19 |
Monitor Contended Entered |
+ |
+ |
|
+ |
+ |
|
+ |
|
20 |
Monitor Wait |
+ |
+ |
|
+ |
+ |
|
+ |
|
21 |
Monitor Waited |
+ |
+ |
|
+ |
+ |
|
+ |
|
22 |
Native Method Bind |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
23 |
Object Free |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
24 |
Single Step |
+ |
+ |
|
+ |
|
|
+ |
|
25 |
Thread End |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
26 |
Thread Start |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
27 |
VM Death Event |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
28 |
VM Initialization Event |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
29 |
VM Object Allocation |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
30 |
VM Start Event |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Functions
# |
Name |
Windows / Linux IA32 |
Windows / Linux x86_64 |
Linux IA64 |
|||||
Interpreter |
JET |
OPT |
Interpreter |
JET |
OPT |
Interpreter |
JIT |
||
|
Memory Management |
|
|
|
|
|
|
|
|
1 |
Allocate |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
2 |
Deallocate |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Thread |
|
|
|
|
|
|
|
|
3 |
GetThreadState |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
4 |
GetAllThreads |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
5 |
SuspendThread |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
6 |
SuspendThreadList |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
7 |
ResumeThread |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
8 |
ResumeThreadList |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
9 |
StopThread |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
10 |
InterruptThread |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
11 |
GetThreadInfo |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
12 |
GetOwnedMonitorInfo |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
13 |
GetCurrentContendedMonitor |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
14 |
RunAgentThread |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
15 |
SetThreadLocalStorage |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
16 |
GetThreadLocalStorage |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Thread Group |
|
|
|
|
|
|
|
|
17 |
GetTopThreadGroups |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
18 |
GetThreadGroupInfo |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
19 |
GetThreadGroupChildren |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Stack Frame |
|
|
|
|
|
|
|
|
20 |
GetStackTrace |
+ |
+ |
|
+ |
|
|
+ |
|
21 |
GetAllStackTraces |
+ |
+ |
|
+ |
|
|
+ |
|
22 |
GetThreadListStackTraces |
+ |
+ |
|
+ |
|
|
+ |
|
23 |
GetFrameCount |
+ |
+ |
|
+ |
|
|
+ |
|
24 |
PopFrame |
+ |
+ |
|
+ |
|
|
+ |
|
25 |
GetFrameLocation |
+ |
+ |
|
+ |
|
|
+ |
|
26 |
NotifyFramePop |
+ |
+ |
|
+ |
|
|
+ |
|
|
Heap |
|
|
|
|
|
|
|
|
27 |
GetTag |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
28 |
SetTag |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
29 |
ForceGarbageCollection |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
30 |
IterateOverObjectsReachableFromObject |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
31 |
IterateOverReachableObjects |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
32 |
IterateOverHeap |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
33 |
IterateOverInstancesOfClass |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
34 |
GetObjectsWithTags |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Local Variable |
|
|
|
|
|
|
|
|
35 |
GetLocalObject |
+ |
+ |
|
+ |
|
|
+ |
|
36 |
GetLocalInt |
+ |
+ |
|
+ |
|
|
+ |
|
37 |
GetLocalLong |
+ |
+ |
|
+ |
|
|
+ |
|
38 |
GetLocalFloat |
+ |
+ |
|
+ |
|
|
+ |
|
39 |
GetLocalDouble |
+ |
+ |
|
+ |
|
|
+ |
|
40 |
SetLocalObject |
+ |
+ |
|
+ |
|
|
+ |
|
41 |
SetLocalInt |
+ |
+ |
|
+ |
|
|
+ |
|
42 |
SetLocalLong |
+ |
+ |
|
+ |
|
|
+ |
|
43 |
SetLocalFloat |
+ |
+ |
|
+ |
|
|
+ |
|
44 |
SetLocalDouble |
+ |
+ |
|
+ |
|
|
+ |
|
|
Breakpoints |
|
|
|
|
|
|
|
|
45 |
SetBreakpoint |
+ |
+ |
|
+ |
|
|
+ |
|
46 |
ClearBreakpoint |
+ |
+ |
|
+ |
|
|
+ |
|
|
Watched Field |
|
|
|
|
|
|
|
|
47 |
SetFieldAccessWatch |
+ |
+ |
|
+ |
|
|
+ |
|
48 |
ClearFieldAccessWatch |
+ |
+ |
|
+ |
|
|
+ |
|
49 |
SetFieldModificationWatch |
+ |
+ |
|
+ |
|
|
+ |
|
50 |
ClearFieldModificationWatch |
+ |
+ |
|
+ |
|
|
+ |
|
|
Class |
|
|
|
|
|
|
|
|
51 |
GetLoadedClasses |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
52 |
GetClassLoaderClasses |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
53 |
GetClassSignature |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
54 |
GetClassStatus |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
55 |
GetSourceFileName |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
56 |
GetClassModifiers |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
57 |
GetClassMethods |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
58 |
GetClassFields |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
59 |
GetImplementedInterfaces |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
60 |
IsInterface |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
61 |
IsArrayClass |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
62 |
GetClassLoader |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
63 |
GetSourceDebugExtension |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
64 |
RedefineClasses |
|
|
|
|
|
|
|
|
|
Object |
|
|
|
|
|
|
|
|
65 |
GetObjectSize |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
66 |
GetObjectHashCode |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
67 |
GetObjectMonitorUsage |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Field |
|
|
|
|
|
|
|
|
68 |
GetFieldName |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
69 |
GetFieldDeclaringClass |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
70 |
GetFieldModifiers |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
71 |
IsFieldSynthetic |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Method |
|
|
|
|
|
|
|
|
72 |
GetMethodName |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
73 |
GetMethodDeclaringClass |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
74 |
GetMethodModifiers |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
75 |
GetMaxLocals |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
76 |
GetArgumentsSize |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
77 |
GetLineNumberTable |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
78 |
GetMethodLocation |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
79 |
GetLocalVariableTable |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
80 |
GetBytecodes |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
81 |
IsMethodNative |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
82 |
IsMethodSynthetic |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
83 |
IsMethodObsolete |
+ |
+ |
|
+ |
|
|
+ |
|
|
Raw Monitor |
|
|
|
|
|
|
|
|
84 |
CreateRawMonitor |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
85 |
DestroyRawMonitor |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
86 |
RawMonitorEnter |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
87 |
RawMonitorExit |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
88 |
RawMonitorWait |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
89 |
RawMonitorNotify |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
90 |
RawMonitorNotifyAll |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
JNI Function Interception |
|
|
|
|
|
|
|
|
91 |
SetJNIFunctionTable |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
92 |
GetJNIFunctionTable |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Event Management |
|
|
|
|
|
|
|
|
93 |
SetEventCallbacks |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
94 |
SetEventNotificationMode |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
95 |
GenerateEvents |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Extension Mechanism |
|
|
|
|
|
|
|
|
96 |
GetExtensionFunctions |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
97 |
GetExtensionEvents |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
98 |
SetExtensionEventCallback |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Capabilities |
|
|
|
|
|
|
|
|
99 |
GetPotentialCapabilities |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
100 |
AddCapabilities |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
101 |
RelinquishCapabilities |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
102 |
GetCapabilities |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Timer |
|
|
|
|
|
|
|
|
103 |
GetCurrentThreadCpuTimerInfo |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
104 |
GetCurrentThreadCpuTime |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
105 |
GetThreadCpuTimerInfo |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
106 |
GetThreadCpuTime |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
107 |
GetTimerInfo |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
108 |
GetTime |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
109 |
GetAvailableProcessors |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
System Properties |
|
|
|
|
|
|
|
|
110 |
AddToBootstrapClassLoaderSearch |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
111 |
GetSystemProperties |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
112 |
GetSystemProperty |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
113 |
SetSystemProperty |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
General |
|
|
|
|
|
|
|
|
114 |
GetPhase |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
115 |
DisposeEnvironment |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
116 |
SetEnvironmentLocalStorage |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
117 |
GetEnvironmentLocalStorage |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
118 |
GetVersionNumber |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
119 |
GetErrorName |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
120 |
SetVerboseFlag |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
121 |
GetJLocationFormat |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |