diff options
author | Robert Griebl <robert.griebl@pelagicore.com> | 2018-02-20 11:58:54 +0100 |
---|---|---|
committer | Jędrzej Nowacki <jedrzej.nowacki@qt.io> | 2018-02-20 12:06:25 +0000 |
commit | f741a32756dcb6cc740160265d76da5375e8e918 (patch) | |
tree | 7d18998a177c9adcd02aa4afa248e839a5900093 | |
parent | 365b41712099dfb7bb59dfa0aada92be97a2a664 (diff) | |
download | qtapplicationmanager-f741a32756dcb6cc740160265d76da5375e8e918.tar.gz |
Preserve the PID of apps when they crash for better error output
Task-number: QTAUTO-515
Change-Id: I039199d6bc3cd4964c692dd3448c6d17b3c29998
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
-rw-r--r-- | src/manager-lib/processcontainer.cpp | 8 | ||||
-rw-r--r-- | src/manager-lib/processcontainer.h | 1 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/manager-lib/processcontainer.cpp b/src/manager-lib/processcontainer.cpp index 847dbfea..4b0b1a7e 100644 --- a/src/manager-lib/processcontainer.cpp +++ b/src/manager-lib/processcontainer.cpp @@ -68,7 +68,11 @@ HostProcess::~HostProcess() void HostProcess::start(const QString &program, const QStringList &arguments) { - connect(&m_process, &QProcess::started, this, &HostProcess::started); + connect(&m_process, &QProcess::started, this, [this]() { + // we to cache the pid in order to have it available after the process crashed + m_pid = m_process.processId(); + emit started(); + }); connect(&m_process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), this, &HostProcess::errorOccured); connect(&m_process, static_cast<void (QProcess::*)(int,QProcess::ExitStatus)>(&QProcess::finished), @@ -122,7 +126,7 @@ void HostProcess::terminate() qint64 HostProcess::processId() const { - return m_process.processId(); + return m_pid; } QProcess::ProcessState HostProcess::state() const diff --git a/src/manager-lib/processcontainer.h b/src/manager-lib/processcontainer.h index 598b4f37..d9dfacc0 100644 --- a/src/manager-lib/processcontainer.h +++ b/src/manager-lib/processcontainer.h @@ -97,6 +97,7 @@ private: }; MyQProcess m_process; + qint64 m_pid = 0; }; class ProcessContainer : public AbstractContainer |