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");
|