| 2021 | } |
| 2022 | |
| 2023 | static void sigill_handler(int /*sig*/, siginfo_t* info, void* /*uct*/) noexcept |
| 2024 | { |
| 2025 | std::string msg = fmt::format("Illegal instruction at %p (%s).\n", info->si_addr, *reinterpret_cast<be_t<u128>*>(info->si_addr)); |
| 2026 | |
| 2027 | append_thread_name(msg); |
| 2028 | |
| 2029 | sys_log.fatal("\n%s", msg); |
| 2030 | sys_log.notice("\n%s", dump_useful_thread_info()); |
| 2031 | logs::listener::sync_all(); |
| 2032 | |
| 2033 | if (rx::isDebuggerPresent()) |
| 2034 | { |
| 2035 | // Convert to SIGTRAP |
| 2036 | raise(SIGTRAP); |
| 2037 | return; |
| 2038 | } |
| 2039 | |
| 2040 | thread_ctrl::emergency_exit(msg); |
| 2041 | } |
| 2042 | |
| 2043 | void sigpipe_signaling_handler(int) |
| 2044 | { |
nothing calls this directly
no test coverage detected