< prev index next >

src/share/vm/services/diagnosticCommand.cpp

Print this page
rev 12854 : [mq]: gcinterface.patch


 379   output()->print_cr(" s");
 380 }
 381 
 382 int VMUptimeDCmd::num_arguments() {
 383   ResourceMark rm;
 384   VMUptimeDCmd* dcmd = new VMUptimeDCmd(NULL, false);
 385   if (dcmd != NULL) {
 386     DCmdMark mark(dcmd);
 387     return dcmd->_dcmdparser.num_arguments();
 388   } else {
 389     return 0;
 390   }
 391 }
 392 
 393 void VMInfoDCmd::execute(DCmdSource source, TRAPS) {
 394   VMError::print_vm_info(_output);
 395 }
 396 
 397 void SystemGCDCmd::execute(DCmdSource source, TRAPS) {
 398   if (!DisableExplicitGC) {
 399     Universe::heap()->collect(GCCause::_dcmd_gc_run);
 400   } else {
 401     output()->print_cr("Explicit GC is disabled, no GC has been performed.");
 402   }
 403 }
 404 
 405 void RunFinalizationDCmd::execute(DCmdSource source, TRAPS) {
 406   Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_System(),
 407                                                  true, CHECK);
 408   JavaValue result(T_VOID);
 409   JavaCalls::call_static(&result, k,
 410                          vmSymbols::run_finalization_name(),
 411                          vmSymbols::void_method_signature(), CHECK);
 412 }
 413 
 414 void HeapInfoDCmd::execute(DCmdSource source, TRAPS) {
 415   MutexLocker hl(Heap_lock);
 416   Universe::heap()->print_on(output());
 417 }
 418 
 419 void FinalizerInfoDCmd::execute(DCmdSource source, TRAPS) {
 420   ResourceMark rm;
 421 
 422   Klass* k = SystemDictionary::resolve_or_fail(
 423     vmSymbols::finalizer_histogram_klass(), true, CHECK);
 424 
 425   JavaValue result(T_ARRAY);
 426 
 427   // We are calling lang.ref.FinalizerHistogram.getFinalizerHistogram() method
 428   // and expect it to return array of FinalizerHistogramEntry as Object[]
 429 
 430   JavaCalls::call_static(&result, k,
 431                          vmSymbols::get_finalizer_histogram_name(),
 432                          vmSymbols::void_finalizer_histogram_entry_array_signature(), CHECK);
 433 
 434   objArrayOop result_oop = (objArrayOop) result.get_jobject();
 435   if (result_oop->length() == 0) {
 436     output()->print_cr("No instances waiting for finalization found");




 379   output()->print_cr(" s");
 380 }
 381 
 382 int VMUptimeDCmd::num_arguments() {
 383   ResourceMark rm;
 384   VMUptimeDCmd* dcmd = new VMUptimeDCmd(NULL, false);
 385   if (dcmd != NULL) {
 386     DCmdMark mark(dcmd);
 387     return dcmd->_dcmdparser.num_arguments();
 388   } else {
 389     return 0;
 390   }
 391 }
 392 
 393 void VMInfoDCmd::execute(DCmdSource source, TRAPS) {
 394   VMError::print_vm_info(_output);
 395 }
 396 
 397 void SystemGCDCmd::execute(DCmdSource source, TRAPS) {
 398   if (!DisableExplicitGC) {
 399     GC::gc()->heap()->collect(GCCause::_dcmd_gc_run);
 400   } else {
 401     output()->print_cr("Explicit GC is disabled, no GC has been performed.");
 402   }
 403 }
 404 
 405 void RunFinalizationDCmd::execute(DCmdSource source, TRAPS) {
 406   Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_System(),
 407                                                  true, CHECK);
 408   JavaValue result(T_VOID);
 409   JavaCalls::call_static(&result, k,
 410                          vmSymbols::run_finalization_name(),
 411                          vmSymbols::void_method_signature(), CHECK);
 412 }
 413 
 414 void HeapInfoDCmd::execute(DCmdSource source, TRAPS) {
 415   MutexLocker hl(Heap_lock);
 416   GC::gc()->heap()->print_on(output());
 417 }
 418 
 419 void FinalizerInfoDCmd::execute(DCmdSource source, TRAPS) {
 420   ResourceMark rm;
 421 
 422   Klass* k = SystemDictionary::resolve_or_fail(
 423     vmSymbols::finalizer_histogram_klass(), true, CHECK);
 424 
 425   JavaValue result(T_ARRAY);
 426 
 427   // We are calling lang.ref.FinalizerHistogram.getFinalizerHistogram() method
 428   // and expect it to return array of FinalizerHistogramEntry as Object[]
 429 
 430   JavaCalls::call_static(&result, k,
 431                          vmSymbols::get_finalizer_histogram_name(),
 432                          vmSymbols::void_finalizer_histogram_entry_array_signature(), CHECK);
 433 
 434   objArrayOop result_oop = (objArrayOop) result.get_jobject();
 435   if (result_oop->length() == 0) {
 436     output()->print_cr("No instances waiting for finalization found");


< prev index next >