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 instanceKlassHandle klass(THREAD, k);
409 JavaValue result(T_VOID);
410 JavaCalls::call_static(&result, klass,
411 vmSymbols::run_finalization_name(),
412 vmSymbols::void_method_signature(), CHECK);
413 }
414
415 void HeapInfoDCmd::execute(DCmdSource source, TRAPS) {
416 MutexLocker hl(Heap_lock);
417 Universe::heap()->print_on(output());
418 }
419
420 void FinalizerInfoDCmd::execute(DCmdSource source, TRAPS) {
421 ResourceMark rm;
422
423
424 Klass* k = SystemDictionary::resolve_or_null(
425 vmSymbols::finalizer_histogram_klass(), THREAD);
426 assert(k != NULL, "FinalizerHistogram class is not accessible");
427
428 instanceKlassHandle klass(THREAD, k);
429 JavaValue result(T_ARRAY);
430
431 // We are calling lang.ref.FinalizerHistogram.getFinalizerHistogram() method
432 // and expect it to return array of FinalizerHistogramEntry as Object[]
433
434 JavaCalls::call_static(&result, klass,
435 vmSymbols::get_finalizer_histogram_name(),
436 vmSymbols::void_finalizer_histogram_entry_array_signature(), CHECK);
437
|
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 instanceKlassHandle klass(THREAD, k);
409 JavaValue result(T_VOID);
410 JavaCalls::call_static(&result, klass,
411 vmSymbols::run_finalization_name(),
412 vmSymbols::void_method_signature(), CHECK);
413 }
414
415 void HeapInfoDCmd::execute(DCmdSource source, TRAPS) {
416 MutexLocker hl(Heap_lock);
417 GC::gc()->heap()->print_on(output());
418 }
419
420 void FinalizerInfoDCmd::execute(DCmdSource source, TRAPS) {
421 ResourceMark rm;
422
423
424 Klass* k = SystemDictionary::resolve_or_null(
425 vmSymbols::finalizer_histogram_klass(), THREAD);
426 assert(k != NULL, "FinalizerHistogram class is not accessible");
427
428 instanceKlassHandle klass(THREAD, k);
429 JavaValue result(T_ARRAY);
430
431 // We are calling lang.ref.FinalizerHistogram.getFinalizerHistogram() method
432 // and expect it to return array of FinalizerHistogramEntry as Object[]
433
434 JavaCalls::call_static(&result, klass,
435 vmSymbols::get_finalizer_histogram_name(),
436 vmSymbols::void_finalizer_histogram_entry_array_signature(), CHECK);
437
|