| 640 | } |
| 641 | |
| 642 | void Profiler::crashHandler(int signo, siginfo_t* siginfo, void* ucontext) { |
| 643 | StackFrame frame(ucontext); |
| 644 | |
| 645 | if (SafeAccess::checkFault(frame)) { |
| 646 | return; |
| 647 | } |
| 648 | |
| 649 | uintptr_t pc = frame.pc(); |
| 650 | if (pc >= profiler_lib_start && pc < profiler_lib_end) { |
| 651 | StackWalker::checkFault(); |
| 652 | } |
| 653 | |
| 654 | if (WX_MEMORY && Trap::isFaultInstruction(pc)) { |
| 655 | return; |
| 656 | } |
| 657 | |
| 658 | orig_crashHandler(signo, siginfo, ucontext); |
| 659 | } |
| 660 | |
| 661 | void Profiler::wakeupHandler(int signo) { |
| 662 | // Dummy handler for interrupting syscalls |
nothing calls this directly
no outgoing calls
no test coverage detected