95 jc.can_get_monitor_info = 1;
96 jc.can_get_constant_pool = 1;
97 jc.can_generate_monitor_events = 1;
98 jc.can_generate_garbage_collection_events = 1;
99 jc.can_generate_compiled_method_load_events = 1;
100 jc.can_generate_native_method_bind_events = 1;
101 jc.can_generate_vm_object_alloc_events = 1;
102 if (os::is_thread_cpu_time_supported()) {
103 jc.can_get_current_thread_cpu_time = 1;
104 jc.can_get_thread_cpu_time = 1;
105 }
106 jc.can_redefine_classes = 1;
107 jc.can_redefine_any_class = 1;
108 jc.can_retransform_classes = 1;
109 jc.can_retransform_any_class = 1;
110 jc.can_set_native_method_prefix = 1;
111 jc.can_tag_objects = 1;
112 jc.can_generate_object_free_events = 1;
113 jc.can_generate_resource_exhaustion_heap_events = 1;
114 jc.can_generate_resource_exhaustion_threads_events = 1;
115 jc.can_sample_heap = 1;
116 return jc;
117 }
118
119 jvmtiCapabilities JvmtiManageCapabilities::init_onload_capabilities() {
120 jvmtiCapabilities jc;
121
122 memset(&jc, 0, sizeof(jc));
123 #ifndef ZERO
124 jc.can_pop_frame = 1;
125 jc.can_force_early_return = 1;
126 #endif // !ZERO
127 jc.can_get_source_debug_extension = 1;
128 jc.can_access_local_variables = 1;
129 jc.can_maintain_original_method_order = 1;
130 jc.can_generate_all_class_hook_events = 1;
131 jc.can_generate_single_step_events = 1;
132 jc.can_generate_exception_events = 1;
133 jc.can_generate_frame_pop_events = 1;
134 jc.can_generate_method_entry_events = 1;
135 jc.can_generate_method_exit_events = 1;
141 return jc;
142 }
143
144
145 jvmtiCapabilities JvmtiManageCapabilities::init_always_solo_capabilities() {
146 jvmtiCapabilities jc;
147
148 memset(&jc, 0, sizeof(jc));
149 jc.can_suspend = 1;
150 return jc;
151 }
152
153
154 jvmtiCapabilities JvmtiManageCapabilities::init_onload_solo_capabilities() {
155 jvmtiCapabilities jc;
156
157 memset(&jc, 0, sizeof(jc));
158 jc.can_generate_field_modification_events = 1;
159 jc.can_generate_field_access_events = 1;
160 jc.can_generate_breakpoint_events = 1;
161 return jc;
162 }
163
164
165 jvmtiCapabilities *JvmtiManageCapabilities::either(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
166 jvmtiCapabilities *result) {
167 char *ap = (char *)a;
168 char *bp = (char *)b;
169 char *resultp = (char *)result;
170
171 for (int i = 0; i < CAPA_SIZE; ++i) {
172 *resultp++ = *ap++ | *bp++;
173 }
174
175 return result;
176 }
177
178
179 jvmtiCapabilities *JvmtiManageCapabilities::both(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
180 jvmtiCapabilities *result) {
407 if (cap->can_signal_thread)
408 log_trace(jvmti)("can_signal_thread");
409 if (cap->can_get_source_file_name)
410 log_trace(jvmti)("can_get_source_file_name");
411 if (cap->can_get_line_numbers)
412 log_trace(jvmti)("can_get_line_numbers");
413 if (cap->can_get_source_debug_extension)
414 log_trace(jvmti)("can_get_source_debug_extension");
415 if (cap->can_access_local_variables)
416 log_trace(jvmti)("can_access_local_variables");
417 if (cap->can_maintain_original_method_order)
418 log_trace(jvmti)("can_maintain_original_method_order");
419 if (cap->can_generate_single_step_events)
420 log_trace(jvmti)("can_generate_single_step_events");
421 if (cap->can_generate_exception_events)
422 log_trace(jvmti)("can_generate_exception_events");
423 if (cap->can_generate_frame_pop_events)
424 log_trace(jvmti)("can_generate_frame_pop_events");
425 if (cap->can_generate_breakpoint_events)
426 log_trace(jvmti)("can_generate_breakpoint_events");
427 if (cap->can_suspend)
428 log_trace(jvmti)("can_suspend");
429 if (cap->can_redefine_any_class )
430 log_trace(jvmti)("can_redefine_any_class");
431 if (cap->can_retransform_any_class )
432 log_trace(jvmti)("can_retransform_any_class");
433 if (cap->can_get_current_thread_cpu_time)
434 log_trace(jvmti)("can_get_current_thread_cpu_time");
435 if (cap->can_get_thread_cpu_time)
436 log_trace(jvmti)("can_get_thread_cpu_time");
437 if (cap->can_generate_method_entry_events)
438 log_trace(jvmti)("can_generate_method_entry_events");
439 if (cap->can_generate_method_exit_events)
440 log_trace(jvmti)("can_generate_method_exit_events");
441 if (cap->can_generate_all_class_hook_events)
442 log_trace(jvmti)("can_generate_all_class_hook_events");
443 if (cap->can_generate_compiled_method_load_events)
444 log_trace(jvmti)("can_generate_compiled_method_load_events");
445 if (cap->can_generate_monitor_events)
446 log_trace(jvmti)("can_generate_monitor_events");
|
95 jc.can_get_monitor_info = 1;
96 jc.can_get_constant_pool = 1;
97 jc.can_generate_monitor_events = 1;
98 jc.can_generate_garbage_collection_events = 1;
99 jc.can_generate_compiled_method_load_events = 1;
100 jc.can_generate_native_method_bind_events = 1;
101 jc.can_generate_vm_object_alloc_events = 1;
102 if (os::is_thread_cpu_time_supported()) {
103 jc.can_get_current_thread_cpu_time = 1;
104 jc.can_get_thread_cpu_time = 1;
105 }
106 jc.can_redefine_classes = 1;
107 jc.can_redefine_any_class = 1;
108 jc.can_retransform_classes = 1;
109 jc.can_retransform_any_class = 1;
110 jc.can_set_native_method_prefix = 1;
111 jc.can_tag_objects = 1;
112 jc.can_generate_object_free_events = 1;
113 jc.can_generate_resource_exhaustion_heap_events = 1;
114 jc.can_generate_resource_exhaustion_threads_events = 1;
115 return jc;
116 }
117
118 jvmtiCapabilities JvmtiManageCapabilities::init_onload_capabilities() {
119 jvmtiCapabilities jc;
120
121 memset(&jc, 0, sizeof(jc));
122 #ifndef ZERO
123 jc.can_pop_frame = 1;
124 jc.can_force_early_return = 1;
125 #endif // !ZERO
126 jc.can_get_source_debug_extension = 1;
127 jc.can_access_local_variables = 1;
128 jc.can_maintain_original_method_order = 1;
129 jc.can_generate_all_class_hook_events = 1;
130 jc.can_generate_single_step_events = 1;
131 jc.can_generate_exception_events = 1;
132 jc.can_generate_frame_pop_events = 1;
133 jc.can_generate_method_entry_events = 1;
134 jc.can_generate_method_exit_events = 1;
140 return jc;
141 }
142
143
144 jvmtiCapabilities JvmtiManageCapabilities::init_always_solo_capabilities() {
145 jvmtiCapabilities jc;
146
147 memset(&jc, 0, sizeof(jc));
148 jc.can_suspend = 1;
149 return jc;
150 }
151
152
153 jvmtiCapabilities JvmtiManageCapabilities::init_onload_solo_capabilities() {
154 jvmtiCapabilities jc;
155
156 memset(&jc, 0, sizeof(jc));
157 jc.can_generate_field_modification_events = 1;
158 jc.can_generate_field_access_events = 1;
159 jc.can_generate_breakpoint_events = 1;
160 jc.can_sample_heap = 1;
161 return jc;
162 }
163
164
165 jvmtiCapabilities *JvmtiManageCapabilities::either(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
166 jvmtiCapabilities *result) {
167 char *ap = (char *)a;
168 char *bp = (char *)b;
169 char *resultp = (char *)result;
170
171 for (int i = 0; i < CAPA_SIZE; ++i) {
172 *resultp++ = *ap++ | *bp++;
173 }
174
175 return result;
176 }
177
178
179 jvmtiCapabilities *JvmtiManageCapabilities::both(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
180 jvmtiCapabilities *result) {
407 if (cap->can_signal_thread)
408 log_trace(jvmti)("can_signal_thread");
409 if (cap->can_get_source_file_name)
410 log_trace(jvmti)("can_get_source_file_name");
411 if (cap->can_get_line_numbers)
412 log_trace(jvmti)("can_get_line_numbers");
413 if (cap->can_get_source_debug_extension)
414 log_trace(jvmti)("can_get_source_debug_extension");
415 if (cap->can_access_local_variables)
416 log_trace(jvmti)("can_access_local_variables");
417 if (cap->can_maintain_original_method_order)
418 log_trace(jvmti)("can_maintain_original_method_order");
419 if (cap->can_generate_single_step_events)
420 log_trace(jvmti)("can_generate_single_step_events");
421 if (cap->can_generate_exception_events)
422 log_trace(jvmti)("can_generate_exception_events");
423 if (cap->can_generate_frame_pop_events)
424 log_trace(jvmti)("can_generate_frame_pop_events");
425 if (cap->can_generate_breakpoint_events)
426 log_trace(jvmti)("can_generate_breakpoint_events");
427 if (cap->can_sample_heap)
428 log_trace(jvmti)("can_sample_heap");
429 if (cap->can_suspend)
430 log_trace(jvmti)("can_suspend");
431 if (cap->can_redefine_any_class )
432 log_trace(jvmti)("can_redefine_any_class");
433 if (cap->can_retransform_any_class )
434 log_trace(jvmti)("can_retransform_any_class");
435 if (cap->can_get_current_thread_cpu_time)
436 log_trace(jvmti)("can_get_current_thread_cpu_time");
437 if (cap->can_get_thread_cpu_time)
438 log_trace(jvmti)("can_get_thread_cpu_time");
439 if (cap->can_generate_method_entry_events)
440 log_trace(jvmti)("can_generate_method_entry_events");
441 if (cap->can_generate_method_exit_events)
442 log_trace(jvmti)("can_generate_method_exit_events");
443 if (cap->can_generate_all_class_hook_events)
444 log_trace(jvmti)("can_generate_all_class_hook_events");
445 if (cap->can_generate_compiled_method_load_events)
446 log_trace(jvmti)("can_generate_compiled_method_load_events");
447 if (cap->can_generate_monitor_events)
448 log_trace(jvmti)("can_generate_monitor_events");
|