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 <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2022-04-14 13:53:45 +02:00
parent 3649176402
commit bdbfa4ba0d

View File

@@ -132,7 +132,13 @@ private:
} }
m_coreUnpackProcess.setWorkingDirectory(TemporaryDirectory::masterDirectoryFilePath()); 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"); const QString msg = DebuggerRunTool::tr("Unpacking core file to %1");
appendMessage(msg.arg(m_tempCoreFilePath.toUserOutput()), LogMessageFormat); appendMessage(msg.arg(m_tempCoreFilePath.toUserOutput()), LogMessageFormat);
@@ -140,6 +146,7 @@ private:
if (m_coreFilePath.endsWith(".lzo")) { if (m_coreFilePath.endsWith(".lzo")) {
m_coreUnpackProcess.setCommand({"lzop", {"-o", m_tempCoreFilePath.path(), m_coreUnpackProcess.setCommand({"lzop", {"-o", m_tempCoreFilePath.path(),
"-x", m_coreFilePath.path()}}); "-x", m_coreFilePath.path()}});
reportStarted();
m_coreUnpackProcess.start(); m_coreUnpackProcess.start();
return; return;
} }
@@ -152,6 +159,7 @@ private:
m_tempCoreFile.write(m_coreUnpackProcess.readAllStandardOutput()); m_tempCoreFile.write(m_coreUnpackProcess.readAllStandardOutput());
}); });
m_coreUnpackProcess.setCommand({"gzip", {"-c", "-d", m_coreFilePath.path()}}); m_coreUnpackProcess.setCommand({"gzip", {"-c", "-d", m_coreFilePath.path()}});
reportStarted();
m_coreUnpackProcess.start(); m_coreUnpackProcess.start();
return; return;
} }