350 // This controls whether the compilers keep extra locals live to
351 // improve the debugging experience so only set them if the selected
352 // capabilities look like a debugger.
353 JvmtiExport::set_can_access_local_variables(
354 avail.can_access_local_variables ||
355 avail.can_generate_breakpoint_events ||
356 avail.can_generate_frame_pop_events);
357 JvmtiExport::set_can_post_on_exceptions(
358 avail.can_generate_exception_events ||
359 avail.can_generate_frame_pop_events ||
360 avail.can_generate_method_exit_events);
361 JvmtiExport::set_can_post_breakpoint(avail.can_generate_breakpoint_events);
362 JvmtiExport::set_can_post_field_access(avail.can_generate_field_access_events);
363 JvmtiExport::set_can_post_field_modification(avail.can_generate_field_modification_events);
364 JvmtiExport::set_can_post_method_entry(avail.can_generate_method_entry_events);
365 JvmtiExport::set_can_post_method_exit(avail.can_generate_method_exit_events ||
366 avail.can_generate_frame_pop_events);
367 JvmtiExport::set_can_pop_frame(avail.can_pop_frame);
368 JvmtiExport::set_can_force_early_return(avail.can_force_early_return);
369 JvmtiExport::set_should_clean_up_heap_objects(avail.can_generate_breakpoint_events);
370 }
371
372 #ifndef PRODUCT
373
374 void JvmtiManageCapabilities:: print(const jvmtiCapabilities* cap) {
375 log_trace(jvmti)("----- capabilities -----");
376 if (cap->can_tag_objects)
377 log_trace(jvmti)("can_tag_objects");
378 if (cap->can_generate_field_modification_events)
379 log_trace(jvmti)("can_generate_field_modification_events");
380 if (cap->can_generate_field_access_events)
381 log_trace(jvmti)("can_generate_field_access_events");
382 if (cap->can_get_bytecodes)
383 log_trace(jvmti)("can_get_bytecodes");
384 if (cap->can_get_synthetic_attribute)
385 log_trace(jvmti)("can_get_synthetic_attribute");
386 if (cap->can_get_owned_monitor_info)
387 log_trace(jvmti)("can_get_owned_monitor_info");
388 if (cap->can_get_current_contended_monitor)
389 log_trace(jvmti)("can_get_current_contended_monitor");
|
350 // This controls whether the compilers keep extra locals live to
351 // improve the debugging experience so only set them if the selected
352 // capabilities look like a debugger.
353 JvmtiExport::set_can_access_local_variables(
354 avail.can_access_local_variables ||
355 avail.can_generate_breakpoint_events ||
356 avail.can_generate_frame_pop_events);
357 JvmtiExport::set_can_post_on_exceptions(
358 avail.can_generate_exception_events ||
359 avail.can_generate_frame_pop_events ||
360 avail.can_generate_method_exit_events);
361 JvmtiExport::set_can_post_breakpoint(avail.can_generate_breakpoint_events);
362 JvmtiExport::set_can_post_field_access(avail.can_generate_field_access_events);
363 JvmtiExport::set_can_post_field_modification(avail.can_generate_field_modification_events);
364 JvmtiExport::set_can_post_method_entry(avail.can_generate_method_entry_events);
365 JvmtiExport::set_can_post_method_exit(avail.can_generate_method_exit_events ||
366 avail.can_generate_frame_pop_events);
367 JvmtiExport::set_can_pop_frame(avail.can_pop_frame);
368 JvmtiExport::set_can_force_early_return(avail.can_force_early_return);
369 JvmtiExport::set_should_clean_up_heap_objects(avail.can_generate_breakpoint_events);
370 JvmtiExport::set_can_get_owned_monitor_info(avail.can_get_owned_monitor_info ||
371 avail.can_get_owned_monitor_stack_depth_info);
372 }
373
374 #ifndef PRODUCT
375
376 void JvmtiManageCapabilities:: print(const jvmtiCapabilities* cap) {
377 log_trace(jvmti)("----- capabilities -----");
378 if (cap->can_tag_objects)
379 log_trace(jvmti)("can_tag_objects");
380 if (cap->can_generate_field_modification_events)
381 log_trace(jvmti)("can_generate_field_modification_events");
382 if (cap->can_generate_field_access_events)
383 log_trace(jvmti)("can_generate_field_access_events");
384 if (cap->can_get_bytecodes)
385 log_trace(jvmti)("can_get_bytecodes");
386 if (cap->can_get_synthetic_attribute)
387 log_trace(jvmti)("can_get_synthetic_attribute");
388 if (cap->can_get_owned_monitor_info)
389 log_trace(jvmti)("can_get_owned_monitor_info");
390 if (cap->can_get_current_contended_monitor)
391 log_trace(jvmti)("can_get_current_contended_monitor");
|