forked from qt-creator/qt-creator
debugger: handle new *stopped output indication reasons in gdb 7.4
Task-number: QTCREATORBUG-6763 Change-Id: I7a95bdbb9ab7b85beb19b7d390a10a5d629dc7e7 Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -656,7 +656,7 @@ void GdbEngine::handleResponse(const QByteArray &buff)
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
qDebug() << "UNKNOWN RESPONSE TYPE" << c;
|
||||
qDebug() << "UNKNOWN RESPONSE TYPE '" << c << "'. REST: " << from;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1535,11 +1535,24 @@ void GdbEngine::handleStop1(const GdbMi &data)
|
||||
// dState changed from InferiorStopRequested(13) to InferiorStopOk(14).
|
||||
|
||||
const QByteArray reason = data.findChild("reason").data();
|
||||
const QByteArray func = data.findChild("frame").findChild("from").data();
|
||||
const DebuggerStartParameters &sp = startParameters();
|
||||
const Abi abi = sp.toolChainAbi;
|
||||
|
||||
bool isStopperThread = false;
|
||||
|
||||
if (sp.useTerminal
|
||||
&& reason == "signal-received"
|
||||
&& data.findChild("signal-name").data() == "SIGSTOP"
|
||||
&& (func.endsWith("/ld-linux.so.2")
|
||||
|| func.endsWith("/ld-linux-x86-64.so.2")))
|
||||
{
|
||||
// Ignore signals from the process stub.
|
||||
showMessage(_("INTERNAL CONTINUE AFTER SIGSTOP FROM STUB"), LogMisc);
|
||||
continueInferiorInternal();
|
||||
return;
|
||||
}
|
||||
|
||||
if (abi.os() == Abi::WindowsOS
|
||||
&& sp.useTerminal
|
||||
&& reason == "signal-received"
|
||||
@@ -1547,7 +1560,7 @@ void GdbEngine::handleStop1(const GdbMi &data)
|
||||
{
|
||||
if (!m_actingOnExpectedStop) {
|
||||
// Ignore signals from command line start up traps.
|
||||
showMessage(_("INTERNAL CONTINUE"), LogMisc);
|
||||
showMessage(_("INTERNAL CONTINUE AFTER SIGTRAP"), LogMisc);
|
||||
continueInferiorInternal();
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user