From 5aeabf028bc106cce12fccd87ab5c458b43d4fa5 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Sun, 31 Jan 2021 16:10:50 +1000 Subject: [PATCH] Qt: Install crash handler on startup --- src/duckstation-qt/main.cpp | 3 +++ src/frontend-common/common_host_interface.cpp | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/duckstation-qt/main.cpp b/src/duckstation-qt/main.cpp index 6831abf24..b9a502dd7 100644 --- a/src/duckstation-qt/main.cpp +++ b/src/duckstation-qt/main.cpp @@ -1,4 +1,5 @@ #include "common/log.h" +#include "common/crash_handler.h" #include "mainwindow.h" #include "qthostinterface.h" #include "qtutils.h" @@ -27,6 +28,8 @@ static bool ParseCommandLineParameters(QApplication& app, QtHostInterface* host_ int main(int argc, char* argv[]) { + CrashHandler::Install(); + // Register any standard types we need elsewhere qRegisterMetaType>(); qRegisterMetaType>(); diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp index 59190aa94..6e345be35 100644 --- a/src/frontend-common/common_host_interface.cpp +++ b/src/frontend-common/common_host_interface.cpp @@ -5,6 +5,7 @@ #include "common/file_system.h" #include "common/log.h" #include "common/string_util.h" +#include "common/crash_handler.h" #include "controller_interface.h" #include "core/cdrom.h" #include "core/cheats.h" @@ -64,6 +65,9 @@ bool CommonHostInterface::Initialize() if (!FileSystem::SetWorkingDirectory(m_user_directory.c_str())) Log_ErrorPrintf("Failed to set working directory to '%s'", m_user_directory.c_str()); + // Set crash handler to dump to user directory, because of permissions. + CrashHandler::SetWriteDirectory(m_user_directory); + LoadSettings(); UpdateLogSettings(g_settings.log_level, g_settings.log_filter.empty() ? nullptr : g_settings.log_filter.c_str(), g_settings.log_to_console, g_settings.log_to_debug, g_settings.log_to_window,