equal
deleted
inserted
replaced
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); |