equal
deleted
inserted
replaced
1378 } |
1378 } |
1379 |
1379 |
1380 // Note: os::abort() might be called very early during initialization, or |
1380 // Note: os::abort() might be called very early during initialization, or |
1381 // called from signal handler. Before adding something to os::abort(), make |
1381 // called from signal handler. Before adding something to os::abort(), make |
1382 // sure it is async-safe and can handle partially initialized VM. |
1382 // sure it is async-safe and can handle partially initialized VM. |
1383 void os::abort(bool dump_core, void* siginfo, void* context) { |
1383 void os::abort(bool dump_core, void* siginfo, const void* context) { |
1384 os::shutdown(); |
1384 os::shutdown(); |
1385 if (dump_core) { |
1385 if (dump_core) { |
1386 #ifndef PRODUCT |
1386 #ifndef PRODUCT |
1387 fdStream out(defaultStream::output_fd()); |
1387 fdStream out(defaultStream::output_fd()); |
1388 out.print_raw("Current thread is "); |
1388 out.print_raw("Current thread is "); |
3734 |
3734 |
3735 void PcFetcher::do_task(const os::SuspendedThreadTaskContext& context) { |
3735 void PcFetcher::do_task(const os::SuspendedThreadTaskContext& context) { |
3736 Thread* thread = context.thread(); |
3736 Thread* thread = context.thread(); |
3737 OSThread* osthread = thread->osthread(); |
3737 OSThread* osthread = thread->osthread(); |
3738 if (osthread->ucontext() != NULL) { |
3738 if (osthread->ucontext() != NULL) { |
3739 _epc = os::Solaris::ucontext_get_pc((ucontext_t *) context.ucontext()); |
3739 _epc = os::Solaris::ucontext_get_pc((const ucontext_t *) context.ucontext()); |
3740 } else { |
3740 } else { |
3741 // NULL context is unexpected, double-check this is the VMThread |
3741 // NULL context is unexpected, double-check this is the VMThread |
3742 guarantee(thread->is_VM_thread(), "can only be called for VMThread"); |
3742 guarantee(thread->is_VM_thread(), "can only be called for VMThread"); |
3743 } |
3743 } |
3744 } |
3744 } |