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;
} }
@@ -1650,12 +1653,21 @@ void GdbEngine::handleInferiorShutdown(const GdbResponse &response)
if (response.resultClass == GdbResultDone) { if (response.resultClass == GdbResultDone) {
debugMessage(_("INFERIOR SUCCESSFULLY SHUT DOWN")); debugMessage(_("INFERIOR SUCCESSFULLY SHUT DOWN"));
setState(InferiorShutDown); setState(InferiorShutDown);
} else {
QByteArray ba = response.data.findChild("msg").data();
if (ba.contains(": No such file or directory.")) {
// This happens when someone removed the binary behind our back.
// It is not really an error from a user's point of view.
debugMessage(_("INFERIOR SUCCESSFULLY SHUT DOWN"));
debugMessage(_("NOTE: " + ba));
setState(InferiorShutDown);
} else { } else {
debugMessage(_("INFERIOR SHUTDOWN FAILED")); debugMessage(_("INFERIOR SHUTDOWN FAILED"));
setState(InferiorShutdownFailed); setState(InferiorShutdownFailed);
QString msg = m_gdbAdapter->msgInferiorStopFailed( showMessageBox(QMessageBox::Critical,
QString::fromLocal8Bit(response.data.findChild("msg").data())); tr("Failed to shut down application"),
showMessageBox(QMessageBox::Critical, tr("Failed to shut down application"), msg); m_gdbAdapter->msgInferiorStopFailed(QString::fromLocal8Bit(ba)));
}
} }
shutdown(); // re-iterate... shutdown(); // re-iterate...
} }