forked from qt-creator/qt-creator
Debugger: Also ignore SIGSTOPs inside clone() when using a terminal
Chances are high these are triggered by the process stub. There is a small chance for false positives here, but true SIGSTOPs by other external sources in these locations are very unlikely. Task-number: QTCREATORBUG-25073 Task-number: QTCREATORBUG-25082 Change-Id: I25478caf6803877f2f8cbb2edef68ae1183223a6 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -1133,17 +1133,21 @@ void GdbEngine::handleStopResponse(const GdbMi &data)
|
||||
|
||||
// Ignore signals from the process stub.
|
||||
const GdbMi frame = data["frame"];
|
||||
const QString func = frame["from"].data();
|
||||
if (terminal()
|
||||
&& data["reason"].data() == "signal-received"
|
||||
&& data["signal-name"].data() == "SIGSTOP"
|
||||
&& (func.endsWith("/ld-linux.so.2")
|
||||
|| func.endsWith("/ld-linux-x86-64.so.2")))
|
||||
&& data["signal-name"].data() == "SIGSTOP")
|
||||
{
|
||||
showMessage("INTERNAL CONTINUE AFTER SIGSTOP FROM STUB", LogMisc);
|
||||
notifyInferiorSpontaneousStop();
|
||||
continueInferiorInternal();
|
||||
return;
|
||||
const QString from = frame["from"].data();
|
||||
const QString func = frame["func"].data();
|
||||
if (from.endsWith("/ld-linux.so.2")
|
||||
|| from.endsWith("/ld-linux-x86-64.so.2")
|
||||
|| func == "clone")
|
||||
{
|
||||
showMessage("INTERNAL CONTINUE AFTER SIGSTOP FROM STUB", LogMisc);
|
||||
notifyInferiorSpontaneousStop();
|
||||
continueInferiorInternal();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!m_onStop.isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user