124 return jc;
125 }
126
127
128 jvmtiCapabilities JvmtiManageCapabilities::init_always_solo_capabilities() {
129 jvmtiCapabilities jc;
130
131 memset(&jc, 0, sizeof(jc));
132 jc.can_suspend = 1;
133 return jc;
134 }
135
136
137 jvmtiCapabilities JvmtiManageCapabilities::init_onload_solo_capabilities() {
138 jvmtiCapabilities jc;
139
140 memset(&jc, 0, sizeof(jc));
141 jc.can_generate_field_modification_events = 1;
142 jc.can_generate_field_access_events = 1;
143 jc.can_generate_breakpoint_events = 1;
144 jc.can_sample_heap = 1;
145 return jc;
146 }
147
148
149 jvmtiCapabilities *JvmtiManageCapabilities::either(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
150 jvmtiCapabilities *result) {
151 char *ap = (char *)a;
152 char *bp = (char *)b;
153 char *resultp = (char *)result;
154
155 for (int i = 0; i < CAPA_SIZE; ++i) {
156 *resultp++ = *ap++ | *bp++;
157 }
158
159 return result;
160 }
161
162
163 jvmtiCapabilities *JvmtiManageCapabilities::both(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
164 jvmtiCapabilities *result) {
394 if (cap->can_signal_thread)
395 log_trace(jvmti)("can_signal_thread");
396 if (cap->can_get_source_file_name)
397 log_trace(jvmti)("can_get_source_file_name");
398 if (cap->can_get_line_numbers)
399 log_trace(jvmti)("can_get_line_numbers");
400 if (cap->can_get_source_debug_extension)
401 log_trace(jvmti)("can_get_source_debug_extension");
402 if (cap->can_access_local_variables)
403 log_trace(jvmti)("can_access_local_variables");
404 if (cap->can_maintain_original_method_order)
405 log_trace(jvmti)("can_maintain_original_method_order");
406 if (cap->can_generate_single_step_events)
407 log_trace(jvmti)("can_generate_single_step_events");
408 if (cap->can_generate_exception_events)
409 log_trace(jvmti)("can_generate_exception_events");
410 if (cap->can_generate_frame_pop_events)
411 log_trace(jvmti)("can_generate_frame_pop_events");
412 if (cap->can_generate_breakpoint_events)
413 log_trace(jvmti)("can_generate_breakpoint_events");
414 if (cap->can_sample_heap)
415 log_trace(jvmti)("can_sample_heap");
416 if (cap->can_suspend)
417 log_trace(jvmti)("can_suspend");
418 if (cap->can_redefine_any_class )
419 log_trace(jvmti)("can_redefine_any_class");
420 if (cap->can_retransform_any_class )
421 log_trace(jvmti)("can_retransform_any_class");
422 if (cap->can_get_current_thread_cpu_time)
423 log_trace(jvmti)("can_get_current_thread_cpu_time");
424 if (cap->can_get_thread_cpu_time)
425 log_trace(jvmti)("can_get_thread_cpu_time");
426 if (cap->can_generate_method_entry_events)
427 log_trace(jvmti)("can_generate_method_entry_events");
428 if (cap->can_generate_method_exit_events)
429 log_trace(jvmti)("can_generate_method_exit_events");
430 if (cap->can_generate_all_class_hook_events)
431 log_trace(jvmti)("can_generate_all_class_hook_events");
432 if (cap->can_generate_compiled_method_load_events)
433 log_trace(jvmti)("can_generate_compiled_method_load_events");
434 if (cap->can_generate_monitor_events)
435 log_trace(jvmti)("can_generate_monitor_events");
|
124 return jc;
125 }
126
127
128 jvmtiCapabilities JvmtiManageCapabilities::init_always_solo_capabilities() {
129 jvmtiCapabilities jc;
130
131 memset(&jc, 0, sizeof(jc));
132 jc.can_suspend = 1;
133 return jc;
134 }
135
136
137 jvmtiCapabilities JvmtiManageCapabilities::init_onload_solo_capabilities() {
138 jvmtiCapabilities jc;
139
140 memset(&jc, 0, sizeof(jc));
141 jc.can_generate_field_modification_events = 1;
142 jc.can_generate_field_access_events = 1;
143 jc.can_generate_breakpoint_events = 1;
144 jc.can_generate_sampled_alloc_events = 1;
145 return jc;
146 }
147
148
149 jvmtiCapabilities *JvmtiManageCapabilities::either(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
150 jvmtiCapabilities *result) {
151 char *ap = (char *)a;
152 char *bp = (char *)b;
153 char *resultp = (char *)result;
154
155 for (int i = 0; i < CAPA_SIZE; ++i) {
156 *resultp++ = *ap++ | *bp++;
157 }
158
159 return result;
160 }
161
162
163 jvmtiCapabilities *JvmtiManageCapabilities::both(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
164 jvmtiCapabilities *result) {
394 if (cap->can_signal_thread)
395 log_trace(jvmti)("can_signal_thread");
396 if (cap->can_get_source_file_name)
397 log_trace(jvmti)("can_get_source_file_name");
398 if (cap->can_get_line_numbers)
399 log_trace(jvmti)("can_get_line_numbers");
400 if (cap->can_get_source_debug_extension)
401 log_trace(jvmti)("can_get_source_debug_extension");
402 if (cap->can_access_local_variables)
403 log_trace(jvmti)("can_access_local_variables");
404 if (cap->can_maintain_original_method_order)
405 log_trace(jvmti)("can_maintain_original_method_order");
406 if (cap->can_generate_single_step_events)
407 log_trace(jvmti)("can_generate_single_step_events");
408 if (cap->can_generate_exception_events)
409 log_trace(jvmti)("can_generate_exception_events");
410 if (cap->can_generate_frame_pop_events)
411 log_trace(jvmti)("can_generate_frame_pop_events");
412 if (cap->can_generate_breakpoint_events)
413 log_trace(jvmti)("can_generate_breakpoint_events");
414 if (cap->can_generate_sampled_alloc_events)
415 log_trace(jvmti)("can_generate_sampled_alloc_events");
416 if (cap->can_suspend)
417 log_trace(jvmti)("can_suspend");
418 if (cap->can_redefine_any_class )
419 log_trace(jvmti)("can_redefine_any_class");
420 if (cap->can_retransform_any_class )
421 log_trace(jvmti)("can_retransform_any_class");
422 if (cap->can_get_current_thread_cpu_time)
423 log_trace(jvmti)("can_get_current_thread_cpu_time");
424 if (cap->can_get_thread_cpu_time)
425 log_trace(jvmti)("can_get_thread_cpu_time");
426 if (cap->can_generate_method_entry_events)
427 log_trace(jvmti)("can_generate_method_entry_events");
428 if (cap->can_generate_method_exit_events)
429 log_trace(jvmti)("can_generate_method_exit_events");
430 if (cap->can_generate_all_class_hook_events)
431 log_trace(jvmti)("can_generate_all_class_hook_events");
432 if (cap->can_generate_compiled_method_load_events)
433 log_trace(jvmti)("can_generate_compiled_method_load_events");
434 if (cap->can_generate_monitor_events)
435 log_trace(jvmti)("can_generate_monitor_events");
|