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 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |