debugger: avoid confusing status message when exiting debugging if the the

binary is already gone.
This commit is contained in:
hjk
2010-03-29 16:45:34 +02:00
parent 0b12111d6e
commit db753cd83e

View File

@@ -615,8 +615,11 @@ void GdbEngine::handleResponse(const QByteArray &buff)
void GdbEngine::readGdbStandardError() void GdbEngine::readGdbStandardError()
{ {
QByteArray err = m_gdbProc.readAllStandardError(); QByteArray err = m_gdbProc.readAllStandardError();
debugMessage(_("UNEXPECTED GDB STDERR: " + err));
if (err == "Undefined command: \"bb\". Try \"help\".\n") if (err == "Undefined command: \"bb\". Try \"help\".\n")
return; return;
if (err.startsWith("BFD: reopening"))
return;
qWarning() << "Unexpected gdb stderr:" << err; qWarning() << "Unexpected gdb stderr:" << err;
} }
@@ -1651,11 +1654,20 @@ void GdbEngine::handleInferiorShutdown(const GdbResponse &response)
debugMessage(_("INFERIOR SUCCESSFULLY SHUT DOWN")); debugMessage(_("INFERIOR SUCCESSFULLY SHUT DOWN"));
setState(InferiorShutDown); setState(InferiorShutDown);
} else { } else {
debugMessage(_("INFERIOR SHUTDOWN FAILED")); QByteArray ba = response.data.findChild("msg").data();
setState(InferiorShutdownFailed); if (ba.contains(": No such file or directory.")) {
QString msg = m_gdbAdapter->msgInferiorStopFailed( // This happens when someone removed the binary behind our back.
QString::fromLocal8Bit(response.data.findChild("msg").data())); // It is not really an error from a user's point of view.
showMessageBox(QMessageBox::Critical, tr("Failed to shut down application"), msg); debugMessage(_("INFERIOR SUCCESSFULLY SHUT DOWN"));
debugMessage(_("NOTE: " + ba));
setState(InferiorShutDown);
} else {
debugMessage(_("INFERIOR SHUTDOWN FAILED"));
setState(InferiorShutdownFailed);
showMessageBox(QMessageBox::Critical,
tr("Failed to shut down application"),
m_gdbAdapter->msgInferiorStopFailed(QString::fromLocal8Bit(ba)));
}
} }
shutdown(); // re-iterate... shutdown(); // re-iterate...
} }