Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dschmidt/libcrashreporter-qt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeo Mrnjavac <teo@kde.org>2016-03-22 16:39:42 +0300
committerTeo Mrnjavac <teo@kde.org>2016-03-22 16:39:42 +0300
commitb5917ba8e1c5c9500e188fc28730ee4313b65108 (patch)
treeba078f3f48a637967b8b3381cdece0c15da2f83f
parent115c051419dab2a4e54d5c3ebbeae2d3e745de28 (diff)
Fix what we pass along to CrashReporter.
-rw-r--r--src/libcrashreporter-handler/Handler.cpp20
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;