From bdbfa4ba0decddb48009fb0257373c87d4678e07 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 14 Apr 2022 13:53:45 +0200 Subject: [PATCH] CoreUnpacker: Connect to QtcProcess::done() signal Instead of connecting to finished() signal. Implement some error handling. Fix reporting a stop, instead of start, on stop. Change-Id: I6c528204416d8c5ba715875dd3bf5172007d9477 Reviewed-by: hjk --- src/plugins/debugger/debuggerruncontrol.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index 6012dacaf42..47d814d0975 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -132,7 +132,13 @@ private: } m_coreUnpackProcess.setWorkingDirectory(TemporaryDirectory::masterDirectoryFilePath()); - connect(&m_coreUnpackProcess, &QtcProcess::finished, this, &CoreUnpacker::reportStarted); + connect(&m_coreUnpackProcess, &QtcProcess::done, this, [this] { + if (m_coreUnpackProcess.error() == QProcess::UnknownError) { + reportStopped(); + return; + } + reportFailure("Error unpacking " + m_coreFilePath.toUserOutput()); + }); const QString msg = DebuggerRunTool::tr("Unpacking core file to %1"); appendMessage(msg.arg(m_tempCoreFilePath.toUserOutput()), LogMessageFormat); @@ -140,6 +146,7 @@ private: if (m_coreFilePath.endsWith(".lzo")) { m_coreUnpackProcess.setCommand({"lzop", {"-o", m_tempCoreFilePath.path(), "-x", m_coreFilePath.path()}}); + reportStarted(); m_coreUnpackProcess.start(); return; } @@ -152,6 +159,7 @@ private: m_tempCoreFile.write(m_coreUnpackProcess.readAllStandardOutput()); }); m_coreUnpackProcess.setCommand({"gzip", {"-c", "-d", m_coreFilePath.path()}}); + reportStarted(); m_coreUnpackProcess.start(); return; }