equal
deleted
inserted
replaced
1075 } |
1075 } |
1076 |
1076 |
1077 // Note: os::abort() might be called very early during initialization, or |
1077 // Note: os::abort() might be called very early during initialization, or |
1078 // called from signal handler. Before adding something to os::abort(), make |
1078 // called from signal handler. Before adding something to os::abort(), make |
1079 // sure it is async-safe and can handle partially initialized VM. |
1079 // sure it is async-safe and can handle partially initialized VM. |
1080 void os::abort(bool dump_core, void* siginfo, void* context) { |
1080 void os::abort(bool dump_core, void* siginfo, const void* context) { |
1081 os::shutdown(); |
1081 os::shutdown(); |
1082 if (dump_core) { |
1082 if (dump_core) { |
1083 #ifndef PRODUCT |
1083 #ifndef PRODUCT |
1084 fdStream out(defaultStream::output_fd()); |
1084 fdStream out(defaultStream::output_fd()); |
1085 out.print_raw("Current thread is "); |
1085 out.print_raw("Current thread is "); |
3641 |
3641 |
3642 void PcFetcher::do_task(const os::SuspendedThreadTaskContext& context) { |
3642 void PcFetcher::do_task(const os::SuspendedThreadTaskContext& context) { |
3643 Thread* thread = context.thread(); |
3643 Thread* thread = context.thread(); |
3644 OSThread* osthread = thread->osthread(); |
3644 OSThread* osthread = thread->osthread(); |
3645 if (osthread->ucontext() != NULL) { |
3645 if (osthread->ucontext() != NULL) { |
3646 _epc = os::Bsd::ucontext_get_pc((ucontext_t *) context.ucontext()); |
3646 _epc = os::Bsd::ucontext_get_pc((const ucontext_t *) context.ucontext()); |
3647 } else { |
3647 } else { |
3648 // NULL context is unexpected, double-check this is the VMThread |
3648 // NULL context is unexpected, double-check this is the VMThread |
3649 guarantee(thread->is_VM_thread(), "can only be called for VMThread"); |
3649 guarantee(thread->is_VM_thread(), "can only be called for VMThread"); |
3650 } |
3650 } |
3651 } |
3651 } |