Output a log, savegame and screenshot on desync events

This commit is contained in:
Jonathan G Rennison
2019-05-17 18:55:45 +01:00
parent 3fdd553a08
commit fa55a1c002
7 changed files with 139 additions and 9 deletions

View File

@@ -375,6 +375,8 @@ class CrashLogOSX : public CrashLog {
}
public:
struct DesyncTag {};
/**
* A crash log is always generated by signal.
* @param signum the signal that was caused by the crash.
@@ -399,6 +401,13 @@ public:
#endif /* WITH_UCONTEXT */
}
CrashLogOSX(DesyncTag tag) : signum(0), si(nullptr), context(nullptr), signal_instruction_ptr_valid(false)
{
filename_log[0] = '\0';
filename_save[0] = '\0';
filename_screenshot[0] = '\0';
}
/** Generate the crash log. */
bool MakeCrashLog()
{
@@ -502,3 +511,9 @@ void CDECL HandleCrash(int signum, siginfo_t *si, void *context)
sigaction(*i, &sa, nullptr);
}
}
/* static */ void CrashLog::DesyncCrashLog()
{
CrashLogOSX log(CrashLogOSX::DesyncTag{});
log.MakeDesyncCrashLog();
}