469 FlatProfiler::disengage();
470 FlatProfiler::print(10);
471 }
472
473 // shut down the StatSampler task
474 StatSampler::disengage();
475 StatSampler::destroy();
476
477 // Stop concurrent GC threads
478 Universe::heap()->stop();
479
480 // Print GC/heap related information.
481 Log(gc, heap, exit) log;
482 if (log.is_info()) {
483 ResourceMark rm;
484 Universe::print_on(log.info_stream());
485 if (log.is_trace()) {
486 ClassLoaderDataGraph::dump_on(log.trace_stream());
487 }
488 }
489 AdaptiveSizePolicyOutput::print();
490
491 if (PrintBytecodeHistogram) {
492 BytecodeHistogram::print();
493 }
494
495 if (JvmtiExport::should_post_thread_life()) {
496 JvmtiExport::post_thread_end(thread);
497 }
498
499 // Always call even when there are not JVMTI environments yet, since environments
500 // may be attached late and JVMTI must track phases of VM execution
501 JvmtiExport::post_vm_death();
502 Threads::shutdown_vm_agents();
503
504 // Terminate the signal thread
505 // Note: we don't wait until it actually dies.
506 os::terminate_signal_thread();
507
508 print_statistics();
509 Universe::heap()->print_tracing_info();
|
469 FlatProfiler::disengage();
470 FlatProfiler::print(10);
471 }
472
473 // shut down the StatSampler task
474 StatSampler::disengage();
475 StatSampler::destroy();
476
477 // Stop concurrent GC threads
478 Universe::heap()->stop();
479
480 // Print GC/heap related information.
481 Log(gc, heap, exit) log;
482 if (log.is_info()) {
483 ResourceMark rm;
484 Universe::print_on(log.info_stream());
485 if (log.is_trace()) {
486 ClassLoaderDataGraph::dump_on(log.trace_stream());
487 }
488 }
489
490 if (PrintBytecodeHistogram) {
491 BytecodeHistogram::print();
492 }
493
494 if (JvmtiExport::should_post_thread_life()) {
495 JvmtiExport::post_thread_end(thread);
496 }
497
498 // Always call even when there are not JVMTI environments yet, since environments
499 // may be attached late and JVMTI must track phases of VM execution
500 JvmtiExport::post_vm_death();
501 Threads::shutdown_vm_agents();
502
503 // Terminate the signal thread
504 // Note: we don't wait until it actually dies.
505 os::terminate_signal_thread();
506
507 print_statistics();
508 Universe::heap()->print_tracing_info();
|