diff options
author | Teo Mrnjavac <teo@kde.org> | 2016-03-22 16:39:42 +0300 |
---|---|---|
committer | Teo Mrnjavac <teo@kde.org> | 2016-03-22 16:39:42 +0300 |
commit | b5917ba8e1c5c9500e188fc28730ee4313b65108 (patch) | |
tree | ba078f3f48a637967b8b3381cdece0c15da2f83f | |
parent | 115c051419dab2a4e54d5c3ebbeae2d3e745de28 (diff) |
Fix what we pass along to CrashReporter.
-rw-r--r-- | src/libcrashreporter-handler/Handler.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/libcrashreporter-handler/Handler.cpp b/src/libcrashreporter-handler/Handler.cpp index b4d9382..0d721d4 100644 --- a/src/libcrashreporter-handler/Handler.cpp +++ b/src/libcrashreporter-handler/Handler.cpp @@ -35,6 +35,7 @@ #elif defined __linux__ # include <client/linux/handler/exception_handler.h> # include <client/linux/handler/minidump_descriptor.h> +# include <cstdio> #endif namespace CrashReporter @@ -167,6 +168,7 @@ LaunchUploader( const char* dump_dir, const char* minidump_id, void* context, bo if ( !s_active || strlen( crashReporter ) == 0 ) return false; +#ifdef Q_OS_LINUX const char* applicationName = static_cast<Handler*>(context)->applicationName(); if ( strlen( applicationName ) == 0 ) return false; @@ -177,6 +179,14 @@ LaunchUploader( const char* dump_dir, const char* minidump_id, void* context, bo if ( strlen( applicationVersion ) == 0 ) return false; + char procid[17]; + sprintf( procid, "%d", static_cast<Handler*>(context)->pid() ); + char signum[17]; + sprintf( signum, "%d", static_cast<Handler*>(context)->signalNumber() ); + char tid[17]; + sprintf( tid, "%d", static_cast<Handler*>(context)->threadId() ); +#endif + pid_t pid = fork(); if ( pid == -1 ) // fork failed return false; @@ -187,12 +197,12 @@ LaunchUploader( const char* dump_dir, const char* minidump_id, void* context, bo execl( crashReporter, crashReporter, path, - static_cast<Handler*>(context)->pid(), - static_cast<Handler*>(context)->signalNumber(), + procid, + signum, applicationName, executablePath, applicationVersion, - static_cast<Handler*>(context)->threadId(), + tid, (char*) 0 ); #else execl( crashReporter, @@ -296,14 +306,14 @@ Handler::setApplicationData( const QCoreApplication* app ) qDebug() << "m_applicationName: " << m_applicationName; char* cepath; - std::string sepath = app->applicationName().toStdString(); + std::string sepath = app->applicationFilePath().toStdString(); cepath = new char[ sepath.size() + 1 ]; strcpy( cepath, sepath.c_str() ); m_executablePath = cepath; qDebug() << "m_executablePath: " << m_executablePath; char* cappver; - std::string sappver = app->applicationName().toStdString(); + std::string sappver = app->applicationVersion().toStdString(); cappver = new char[ sappver.size() + 1 ]; strcpy( cappver, sappver.c_str() ); m_applicationVersion = cappver; |