/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote * * SPDX-License-Identifier: GPL-3.0 */ #include "crashhandler.h" #include "version.h" #ifdef BREAKPAD //#ifdef Q_OS_LINUX #include //#endif // Q_OS_LINUX bool CrashHandler::dumpCallback(const google_breakpad::MinidumpDescriptor &descriptor, void *context, bool succeeded) { printf("Dump path: %s\n", descriptor.path()); auto *ctx = static_cast(context); if(ctx != nullptr) { if(ctx->handler != nullptr) { // fork and run 'handler master:commit path.dmp' pid_t pid = fork(); if(pid == 0) { char buffer[256]; snprintf(buffer, 256, "%s %s %s", ctx->handler, poi_Version, descriptor.path()); execlp("/bin/sh", "/bin/sh", "-c", buffer, (char *)nullptr); } } } return succeeded; } #endif