500 { |
500 { |
501 vm_perform_shutdown_actions(); |
501 vm_perform_shutdown_actions(); |
502 os::shutdown(); |
502 os::shutdown(); |
503 } |
503 } |
504 |
504 |
505 void vm_abort() { |
505 void vm_abort(bool dump_core) { |
506 vm_perform_shutdown_actions(); |
506 vm_perform_shutdown_actions(); |
507 os::abort(PRODUCT_ONLY(false)); |
507 os::abort(dump_core); |
508 ShouldNotReachHere(); |
508 ShouldNotReachHere(); |
509 } |
509 } |
510 |
510 |
511 void vm_notify_during_shutdown(const char* error, const char* message) { |
511 void vm_notify_during_shutdown(const char* error, const char* message) { |
512 if (error != NULL) { |
512 if (error != NULL) { |
536 java_lang_Throwable::print(exception, tty); |
536 java_lang_Throwable::print(exception, tty); |
537 tty->cr(); |
537 tty->cr(); |
538 java_lang_Throwable::print_stack_trace(exception(), tty); |
538 java_lang_Throwable::print_stack_trace(exception(), tty); |
539 tty->cr(); |
539 tty->cr(); |
540 vm_notify_during_shutdown(NULL, NULL); |
540 vm_notify_during_shutdown(NULL, NULL); |
541 vm_abort(); |
541 |
|
542 // Failure during initialization, we don't want to dump core |
|
543 vm_abort(false); |
542 } |
544 } |
543 |
545 |
544 void vm_exit_during_initialization(symbolHandle ex, const char* message) { |
546 void vm_exit_during_initialization(symbolHandle ex, const char* message) { |
545 ResourceMark rm; |
547 ResourceMark rm; |
546 vm_notify_during_shutdown(ex->as_C_string(), message); |
548 vm_notify_during_shutdown(ex->as_C_string(), message); |
547 vm_abort(); |
549 |
|
550 // Failure during initialization, we don't want to dump core |
|
551 vm_abort(false); |
548 } |
552 } |
549 |
553 |
550 void vm_exit_during_initialization(const char* error, const char* message) { |
554 void vm_exit_during_initialization(const char* error, const char* message) { |
551 vm_notify_during_shutdown(error, message); |
555 vm_notify_during_shutdown(error, message); |
552 vm_abort(); |
556 |
|
557 // Failure during initialization, we don't want to dump core |
|
558 vm_abort(false); |
553 } |
559 } |
554 |
560 |
555 void vm_shutdown_during_initialization(const char* error, const char* message) { |
561 void vm_shutdown_during_initialization(const char* error, const char* message) { |
556 vm_notify_during_shutdown(error, message); |
562 vm_notify_during_shutdown(error, message); |
557 vm_shutdown(); |
563 vm_shutdown(); |