mirror of
https://github.com/LizardByte/Sunshine.git
synced 2026-02-04 23:15:39 +00:00
Use a common function to abort for debugging purposes
This commit is contained in:
@ -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]() {
|
||||
|
||||
Reference in New Issue
Block a user