From ff69e69be45f9ce6bc7596fafa1c5d717d260772 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 28 Feb 2020 13:37:02 +1100 Subject: [PATCH] crashhandler: updated for linux --- app/common/crashhandler.cpp | 13 ++++++++----- app/dialog/about/about.cpp | 3 +++ app/main.cpp | 1 + 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/common/crashhandler.cpp b/app/common/crashhandler.cpp index 8ed1579be..fdb9a6941 100644 --- a/app/common/crashhandler.cpp +++ b/app/common/crashhandler.cpp @@ -1,5 +1,6 @@ #include "crashhandler.h" +#include #include #include #include @@ -7,15 +8,17 @@ #include #include -#ifdef Q_OS_WINDOWS +#if defined(Q_OS_WINDOWS) #include #include #include #include +#elif defined(Q_OS_LINUX) +#include #endif void crash_handler(int sig) { - QString log_path = QDir(QStandardPaths::writableLocation(QStandardPaths::TempLocation)).filePath("olive_crash"); + QString log_path = QDir(QStandardPaths::writableLocation(QStandardPaths::TempLocation)).filePath(QStringLiteral("olive_crash")); QFile output(log_path); output.open(QFile::WriteOnly); @@ -105,13 +108,13 @@ void crash_handler(int sig) { size = backtrace(array, 10); // print out all the frames to stderr - fprintf(stderr, "Error: signal %d:\n", sig); - backtrace_symbols_fd(array, size, STDERR_FILENO); + backtrace_symbols_fd(array, size, output.handle()); #endif output.close(); - QProcess::startDetached(QStringLiteral("crashhandler"), {log_path}); + QString crash_handler_exe = QDir(qApp->applicationDirPath()).filePath(QStringLiteral("crashhandler")); + QProcess::startDetached(crash_handler_exe, {log_path}); exit(1); } diff --git a/app/dialog/about/about.cpp b/app/dialog/about/about.cpp index d406aa4a7..d881bf81b 100644 --- a/app/dialog/about/about.cpp +++ b/app/dialog/about/about.cpp @@ -28,6 +28,9 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent) { + char* test = nullptr; + test[250] = 69; + setWindowTitle(tr("About %1").arg(QApplication::applicationName())); QVBoxLayout* layout = new QVBoxLayout(this); diff --git a/app/main.cpp b/app/main.cpp index 869e10ad7..7c8df6577 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -33,6 +33,7 @@ extern "C" { #include #include +#include #include "core.h" #include "common/crashhandler.h"