MCPcopy Create free account
hub / github.com/RPCS3/rpcs3 / sigill_handler

Function sigill_handler

Utilities/Thread.cpp:2063–2081  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2061}
2062
2063static void sigill_handler(int /*sig*/, siginfo_t* info, void* /*uct*/) noexcept
2064{
2065 std::string msg = fmt::format("Illegal instruction at %p (%s).\n", info->si_addr, *reinterpret_cast<be_t<u128>*>(info->si_addr));
2066
2067 append_thread_name(msg);
2068
2069 sys_log.fatal("\n%s", msg);
2070 sys_log.notice("\n%s", dump_useful_thread_info());
2071 logs::listener::sync_all();
2072
2073 if (IsDebuggerPresent())
2074 {
2075 // Convert to SIGTRAP
2076 raise(SIGTRAP);
2077 return;
2078 }
2079
2080 thread_ctrl::emergency_exit(msg);
2081}
2082
2083void sigpipe_signaling_handler(int)
2084{

Callers

nothing calls this directly

Calls 4

append_thread_nameFunction · 0.85
dump_useful_thread_infoFunction · 0.85
IsDebuggerPresentFunction · 0.85
formatFunction · 0.70

Tested by

no test coverage detected