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) {
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");
|
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 jc.can_generate_sampled_object_alloc_events = 1;
162 return jc;
163 }
164
165
166 jvmtiCapabilities *JvmtiManageCapabilities::either(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
167 jvmtiCapabilities *result) {
168 char *ap = (char *)a;
169 char *bp = (char *)b;
170 char *resultp = (char *)result;
171
172 for (int i = 0; i < CAPA_SIZE; ++i) {
173 *resultp++ = *ap++ | *bp++;
174 }
175
176 return result;
177 }
178
179
180 jvmtiCapabilities *JvmtiManageCapabilities::both(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
181 jvmtiCapabilities *result) {
410 if (cap->can_get_source_file_name)
411 log_trace(jvmti)("can_get_source_file_name");
412 if (cap->can_get_line_numbers)
413 log_trace(jvmti)("can_get_line_numbers");
414 if (cap->can_get_source_debug_extension)
415 log_trace(jvmti)("can_get_source_debug_extension");
416 if (cap->can_access_local_variables)
417 log_trace(jvmti)("can_access_local_variables");
418 if (cap->can_maintain_original_method_order)
419 log_trace(jvmti)("can_maintain_original_method_order");
420 if (cap->can_generate_single_step_events)
421 log_trace(jvmti)("can_generate_single_step_events");
422 if (cap->can_generate_exception_events)
423 log_trace(jvmti)("can_generate_exception_events");
424 if (cap->can_generate_frame_pop_events)
425 log_trace(jvmti)("can_generate_frame_pop_events");
426 if (cap->can_generate_breakpoint_events)
427 log_trace(jvmti)("can_generate_breakpoint_events");
428 if (cap->can_sample_heap)
429 log_trace(jvmti)("can_sample_heap");
430 if (cap->can_generate_sampled_object_alloc_events)
431 log_trace(jvmti)("can_generate_sampled_object_alloc_events");
432 if (cap->can_suspend)
433 log_trace(jvmti)("can_suspend");
434 if (cap->can_redefine_any_class )
435 log_trace(jvmti)("can_redefine_any_class");
436 if (cap->can_retransform_any_class )
437 log_trace(jvmti)("can_retransform_any_class");
438 if (cap->can_get_current_thread_cpu_time)
439 log_trace(jvmti)("can_get_current_thread_cpu_time");
440 if (cap->can_get_thread_cpu_time)
441 log_trace(jvmti)("can_get_thread_cpu_time");
442 if (cap->can_generate_method_entry_events)
443 log_trace(jvmti)("can_generate_method_entry_events");
444 if (cap->can_generate_method_exit_events)
445 log_trace(jvmti)("can_generate_method_exit_events");
446 if (cap->can_generate_all_class_hook_events)
447 log_trace(jvmti)("can_generate_all_class_hook_events");
448 if (cap->can_generate_compiled_method_load_events)
449 log_trace(jvmti)("can_generate_compiled_method_load_events");
450 if (cap->can_generate_monitor_events)
451 log_trace(jvmti)("can_generate_monitor_events");
|