Use a common function to abort for debugging purposes
This commit is contained in:
parent
53b2217a34
commit
83e3ea5aa7
5 changed files with 18 additions and 4 deletions
|
|
@ -166,6 +166,18 @@ namespace lifetime {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Breaks into the debugger or terminates Sunshine if no debugger is attached.
|
||||
*/
|
||||
void
|
||||
debug_trap() {
|
||||
#ifdef _WIN32
|
||||
DebugBreak();
|
||||
#else
|
||||
std::raise(SIGTRAP);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Gets the argv array passed to main().
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ namespace lifetime {
|
|||
extern std::atomic_int desired_exit_code;
|
||||
void
|
||||
exit_sunshine(int exit_code, bool async);
|
||||
void
|
||||
debug_trap();
|
||||
char **
|
||||
get_argv();
|
||||
} // namespace lifetime
|
||||
|
|
|
|||
|
|
@ -318,7 +318,7 @@ main(int argc, char *argv[]) {
|
|||
auto task = []() {
|
||||
BOOST_LOG(fatal) << "10 seconds passed, yet Sunshine's still running: Forcing shutdown"sv;
|
||||
log_flush();
|
||||
std::abort();
|
||||
lifetime::debug_trap();
|
||||
};
|
||||
force_shutdown = task_pool.pushDelayed(task, 10s).task_id;
|
||||
|
||||
|
|
@ -331,7 +331,7 @@ main(int argc, char *argv[]) {
|
|||
auto task = []() {
|
||||
BOOST_LOG(fatal) << "10 seconds passed, yet Sunshine's still running: Forcing shutdown"sv;
|
||||
log_flush();
|
||||
std::abort();
|
||||
lifetime::debug_trap();
|
||||
};
|
||||
force_shutdown = task_pool.pushDelayed(task, 10s).task_id;
|
||||
|
||||
|
|
|
|||
|
|
@ -489,7 +489,7 @@ namespace platf {
|
|||
auto winerror = GetLastError();
|
||||
// Log the failure of reverting to self and its error code
|
||||
BOOST_LOG(fatal) << "Failed to revert to self after impersonation: "sv << winerror;
|
||||
std::abort();
|
||||
DebugBreak();
|
||||
}
|
||||
|
||||
return ec;
|
||||
|
|
|
|||
|
|
@ -1815,7 +1815,7 @@ namespace stream {
|
|||
auto task = []() {
|
||||
BOOST_LOG(fatal) << "Hang detected! Session failed to terminate in 10 seconds."sv;
|
||||
log_flush();
|
||||
std::abort();
|
||||
lifetime::debug_trap();
|
||||
};
|
||||
auto force_kill = task_pool.pushDelayed(task, 10s).task_id;
|
||||
auto fg = util::fail_guard([&force_kill]() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue