forked from qt-creator/qt-creator
debugger: handle error triggered by "-exec-finish" triggered in the outermost
frame
This commit is contained in:
@@ -790,15 +790,22 @@ void GdbEngine::handleResultRecord(const GdbResponse &response)
|
||||
// In theory this should not happen, in practice it does.
|
||||
debugMessage(_("COOKIE FOR TOKEN %1 ALREADY EATEN. "
|
||||
"TWO RESPONSES FOR ONE COMMAND?").arg(token));
|
||||
// Handle a case known to occur on Linux/gdb 6.8 when debugging moc
|
||||
// with helpers enabled. In this case we get a second response with
|
||||
// msg="Cannot find new threads: generic error"
|
||||
if (response.resultClass == GdbResultError) {
|
||||
QByteArray msg = response.data.findChild("msg").data();
|
||||
showMessageBox(QMessageBox::Critical,
|
||||
tr("Executable failed"), QString::fromLocal8Bit(msg));
|
||||
showStatusMessage(tr("Process failed to start."));
|
||||
shutdown();
|
||||
// Handle a case known to occur on Linux/gdb 6.8 when debugging moc
|
||||
// with helpers enabled. In this case we get a second response with
|
||||
// msg="Cannot find new threads: generic error"
|
||||
if (msg == "Cannot find new threads: generic error")
|
||||
shutdown();
|
||||
// Handle a case known to appear on gdb 6.4 symbianelf when
|
||||
// the stack is cut due to access to protected memory.
|
||||
if (msg == "\"finish\" not meaningful in the outermost frame.") {
|
||||
setState(InferiorStopping);
|
||||
setState(InferiorStopped);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user