src/hotspot/share/services/diagnosticCommand.cpp
changeset 59006 d3f1cb09b704
parent 55516 f3b62797e2d0
equal deleted inserted replaced
59005:01d47d511f5f 59006:d3f1cb09b704
   514 void HeapDumpDCmd::execute(DCmdSource source, TRAPS) {
   514 void HeapDumpDCmd::execute(DCmdSource source, TRAPS) {
   515   // Request a full GC before heap dump if _all is false
   515   // Request a full GC before heap dump if _all is false
   516   // This helps reduces the amount of unreachable objects in the dump
   516   // This helps reduces the amount of unreachable objects in the dump
   517   // and makes it easier to browse.
   517   // and makes it easier to browse.
   518   HeapDumper dumper(!_all.value() /* request GC if _all is false*/);
   518   HeapDumper dumper(!_all.value() /* request GC if _all is false*/);
   519   int res = dumper.dump(_filename.value());
   519   dumper.dump(_filename.value(), output());
   520   if (res == 0) {
       
   521     output()->print_cr("Heap dump file created");
       
   522   } else {
       
   523     // heap dump failed
       
   524     ResourceMark rm;
       
   525     char* error = dumper.error_as_C_string();
       
   526     if (error == NULL) {
       
   527       output()->print_cr("Dump failed - reason unknown");
       
   528     } else {
       
   529       output()->print_cr("%s", error);
       
   530     }
       
   531   }
       
   532 }
   520 }
   533 
   521 
   534 int HeapDumpDCmd::num_arguments() {
   522 int HeapDumpDCmd::num_arguments() {
   535   ResourceMark rm;
   523   ResourceMark rm;
   536   HeapDumpDCmd* dcmd = new HeapDumpDCmd(NULL, false);
   524   HeapDumpDCmd* dcmd = new HeapDumpDCmd(NULL, false);