equal
deleted
inserted
replaced
1339 } |
1339 } |
1340 |
1340 |
1341 // Note: os::abort() might be called very early during initialization, or |
1341 // Note: os::abort() might be called very early during initialization, or |
1342 // called from signal handler. Before adding something to os::abort(), make |
1342 // called from signal handler. Before adding something to os::abort(), make |
1343 // sure it is async-safe and can handle partially initialized VM. |
1343 // sure it is async-safe and can handle partially initialized VM. |
1344 void os::abort(bool dump_core, void* siginfo, void* context) { |
1344 void os::abort(bool dump_core, void* siginfo, const void* context) { |
1345 os::shutdown(); |
1345 os::shutdown(); |
1346 if (dump_core) { |
1346 if (dump_core) { |
1347 #ifndef PRODUCT |
1347 #ifndef PRODUCT |
1348 fdStream out(defaultStream::output_fd()); |
1348 fdStream out(defaultStream::output_fd()); |
1349 out.print_raw("Current thread is "); |
1349 out.print_raw("Current thread is "); |
4851 |
4851 |
4852 void PcFetcher::do_task(const os::SuspendedThreadTaskContext& context) { |
4852 void PcFetcher::do_task(const os::SuspendedThreadTaskContext& context) { |
4853 Thread* thread = context.thread(); |
4853 Thread* thread = context.thread(); |
4854 OSThread* osthread = thread->osthread(); |
4854 OSThread* osthread = thread->osthread(); |
4855 if (osthread->ucontext() != NULL) { |
4855 if (osthread->ucontext() != NULL) { |
4856 _epc = os::Linux::ucontext_get_pc((ucontext_t *) context.ucontext()); |
4856 _epc = os::Linux::ucontext_get_pc((const ucontext_t *) context.ucontext()); |
4857 } else { |
4857 } else { |
4858 // NULL context is unexpected, double-check this is the VMThread |
4858 // NULL context is unexpected, double-check this is the VMThread |
4859 guarantee(thread->is_VM_thread(), "can only be called for VMThread"); |
4859 guarantee(thread->is_VM_thread(), "can only be called for VMThread"); |
4860 } |
4860 } |
4861 } |
4861 } |