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 return jc;
145 }
146
147
148 jvmtiCapabilities *JvmtiManageCapabilities::either(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
149 jvmtiCapabilities *result) {
150 char *ap = (char *)a;
151 char *bp = (char *)b;
152 char *resultp = (char *)result;
153
154 for (int i = 0; i < CAPA_SIZE; ++i) {
155 *resultp++ = *ap++ | *bp++;
156 }
157
158 return result;
159 }
160
161
162 jvmtiCapabilities *JvmtiManageCapabilities::both(const jvmtiCapabilities *a, const jvmtiCapabilities *b,
163 jvmtiCapabilities *result) {
393 if (cap->can_signal_thread)
394 log_trace(jvmti)("can_signal_thread");
395 if (cap->can_get_source_file_name)
396 log_trace(jvmti)("can_get_source_file_name");
397 if (cap->can_get_line_numbers)
398 log_trace(jvmti)("can_get_line_numbers");
399 if (cap->can_get_source_debug_extension)
400 log_trace(jvmti)("can_get_source_debug_extension");
401 if (cap->can_access_local_variables)
402 log_trace(jvmti)("can_access_local_variables");
403 if (cap->can_maintain_original_method_order)
404 log_trace(jvmti)("can_maintain_original_method_order");
405 if (cap->can_generate_single_step_events)
406 log_trace(jvmti)("can_generate_single_step_events");
407 if (cap->can_generate_exception_events)
408 log_trace(jvmti)("can_generate_exception_events");
409 if (cap->can_generate_frame_pop_events)
410 log_trace(jvmti)("can_generate_frame_pop_events");
411 if (cap->can_generate_breakpoint_events)
412 log_trace(jvmti)("can_generate_breakpoint_events");
413 if (cap->can_suspend)
414 log_trace(jvmti)("can_suspend");
415 if (cap->can_redefine_any_class )
416 log_trace(jvmti)("can_redefine_any_class");
417 if (cap->can_retransform_any_class )
418 log_trace(jvmti)("can_retransform_any_class");
419 if (cap->can_get_current_thread_cpu_time)
420 log_trace(jvmti)("can_get_current_thread_cpu_time");
421 if (cap->can_get_thread_cpu_time)
422 log_trace(jvmti)("can_get_thread_cpu_time");
423 if (cap->can_generate_method_entry_events)
424 log_trace(jvmti)("can_generate_method_entry_events");
425 if (cap->can_generate_method_exit_events)
426 log_trace(jvmti)("can_generate_method_exit_events");
427 if (cap->can_generate_all_class_hook_events)
428 log_trace(jvmti)("can_generate_all_class_hook_events");
429 if (cap->can_generate_compiled_method_load_events)
430 log_trace(jvmti)("can_generate_compiled_method_load_events");
431 if (cap->can_generate_monitor_events)
432 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_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");
|