PdbEngine: Connect to QtcProcess::done() signal

Instead of connecting to errorOccurred() and finished() signals.

Change-Id: I9fff11875a680240e63db1663299680f885dbdfc
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2022-04-29 00:44:43 +02:00
parent 356b43e9aa
commit bd6e75c171
2 changed files with 11 additions and 23 deletions

View File

@@ -120,8 +120,7 @@ void PdbEngine::setupEngine()
m_interpreter = runParameters().interpreter; m_interpreter = runParameters().interpreter;
QString bridge = ICore::resourcePath("debugger/pdbbridge.py").toString(); QString bridge = ICore::resourcePath("debugger/pdbbridge.py").toString();
connect(&m_proc, &QtcProcess::errorOccurred, this, &PdbEngine::handlePdbError); connect(&m_proc, &QtcProcess::finished, this, &PdbEngine::handlePdbDone);
connect(&m_proc, &QtcProcess::finished, this, &PdbEngine::handlePdbFinished);
connect(&m_proc, &QtcProcess::readyReadStandardOutput, this, &PdbEngine::readPdbStandardOutput); connect(&m_proc, &QtcProcess::readyReadStandardOutput, this, &PdbEngine::readPdbStandardOutput);
connect(&m_proc, &QtcProcess::readyReadStandardError, this, &PdbEngine::readPdbStandardError); connect(&m_proc, &QtcProcess::readyReadStandardError, this, &PdbEngine::readPdbStandardError);
@@ -387,24 +386,6 @@ void PdbEngine::updateItem(const QString &iname)
updateAll(); updateAll();
} }
void PdbEngine::handlePdbError(QProcess::ProcessError error)
{
showMessage("HANDLE PDB ERROR");
switch (error) {
case QProcess::Crashed:
break; // will get a processExited() as well
// impossible case QProcess::FailedToStart:
case QProcess::ReadError:
case QProcess::WriteError:
case QProcess::Timedout:
default:
//setState(EngineShutdownRequested, true);
m_proc.kill();
AsynchronousMessageBox::critical(tr("Pdb I/O Error"), errorMessage(error));
break;
}
}
QString PdbEngine::errorMessage(QProcess::ProcessError error) const QString PdbEngine::errorMessage(QProcess::ProcessError error) const
{ {
switch (error) { switch (error) {
@@ -432,8 +413,16 @@ QString PdbEngine::errorMessage(QProcess::ProcessError error) const
} }
} }
void PdbEngine::handlePdbFinished() void PdbEngine::handlePdbDone()
{ {
const QProcess::ProcessError error = m_proc.error();
if (error != QProcess::UnknownError) {
showMessage("HANDLE PDB ERROR");
if (error != QProcess::Crashed)
AsynchronousMessageBox::critical(tr("Pdb I/O Error"), errorMessage(error));
if (error == QProcess::FailedToStart)
return;
}
showMessage(QString("PDB PROCESS FINISHED, status %1, code %2") showMessage(QString("PDB PROCESS FINISHED, status %1, code %2")
.arg(m_proc.exitStatus()).arg(m_proc.exitCode())); .arg(m_proc.exitStatus()).arg(m_proc.exitCode()));
notifyEngineSpontaneousShutdown(); notifyEngineSpontaneousShutdown();

View File

@@ -100,8 +100,7 @@ private:
QString errorMessage(QProcess::ProcessError error) const; QString errorMessage(QProcess::ProcessError error) const;
bool hasCapability(unsigned cap) const override; bool hasCapability(unsigned cap) const override;
void handlePdbFinished(); void handlePdbDone();
void handlePdbError(QProcess::ProcessError error);
void readPdbStandardOutput(); void readPdbStandardOutput();
void readPdbStandardError(); void readPdbStandardError();
void handleOutput2(const QString &data); void handleOutput2(const QString &data);