aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/cdb
diff options
context:
space:
mode:
authorDavid Schulz <[email protected]>2023-10-25 15:07:53 +0200
committerDavid Schulz <[email protected]>2023-12-12 11:53:30 +0000
commitc622601db5e657421efcc4eff50e261f8314a141 (patch)
tree181100e4cfb3595257638470d4e107b5324f2b63 /src/plugins/debugger/cdb
parentd1d573ad16d2e1d86798e5dd010b0716ee8e6090 (diff)
Debugger: simplify interrupting on windows
Use Process::interrupt again and ignore the superfluous exceptions when debugging qbs builds with cdb reported by QTCREATORBUG-28279. Change-Id: I010d41e2b01721d63a3967c9c95d7b10d47a4472 Reviewed-by: Christian Stenger <[email protected]>
Diffstat (limited to 'src/plugins/debugger/cdb')
-rw-r--r--src/plugins/debugger/cdb/cdbengine.cpp14
-rw-r--r--src/plugins/debugger/cdb/cdbengine.h1
2 files changed, 1 insertions, 14 deletions
diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp
index 7d126701d80..ead3ad20f59 100644
--- a/src/plugins/debugger/cdb/cdbengine.cpp
+++ b/src/plugins/debugger/cdb/cdbengine.cpp
@@ -484,6 +484,7 @@ void CdbEngine::handleInitialSessionIdle()
runCommand({QString(".sympath \"") + symbolPaths.join(';') + '"'});
runCommand({".symopt+0x8000"}); // disable searching public symbol table - improving the symbol lookup speed
runCommand({"sxn 0x4000001f", NoFlags}); // Do not break on WowX86 exceptions.
+ runCommand({"sxn 0x40010005", NoFlags}); // Do not break on Ctrl+C exceptions. QTCREATORBUG-28279
runCommand({"sxn ibp", NoFlags}); // Do not break on initial breakpoints.
runCommand({".asm source_line", NoFlags}); // Source line in assembly
runCommand({m_extensionCommandPrefix
@@ -771,8 +772,6 @@ void CdbEngine::handleDoInterruptInferior(const QString &errorMessage)
showMessage(errorMessage, LogError);
notifyInferiorStopFailed();
}
- m_signalOperation->disconnect(this);
- m_signalOperation.clear();
}
void CdbEngine::doInterruptInferior(const InterruptCallback &callback)
@@ -792,17 +791,6 @@ void CdbEngine::doInterruptInferior(const InterruptCallback &callback)
return; // we already requested a stop no need to interrupt twice
showMessage(QString("Interrupting process %1...").arg(inferiorPid()), LogMisc);
- QTC_ASSERT(!m_signalOperation, notifyInferiorStopFailed(); return);
- if (m_effectiveStartMode != AttachToRemoteServer && device()) {
- m_signalOperation = device()->signalOperation();
- if (m_signalOperation) {
- connect(m_signalOperation.data(), &DeviceProcessSignalOperation::finished,
- this, &CdbEngine::handleDoInterruptInferior);
- m_signalOperation->setDebuggerCommand(runParameters().debugger.command.executable());
- m_signalOperation->interruptProcess(inferiorPid());
- return;
- }
- }
m_process.interrupt();
}
diff --git a/src/plugins/debugger/cdb/cdbengine.h b/src/plugins/debugger/cdb/cdbengine.h
index 84a0dded1a7..2721429a308 100644
--- a/src/plugins/debugger/cdb/cdbengine.h
+++ b/src/plugins/debugger/cdb/cdbengine.h
@@ -179,7 +179,6 @@ private:
//! Debugger accessible (expecting commands)
bool m_accessible = false;
StopMode m_stopMode = NoStopRequested;
- ProjectExplorer::DeviceProcessSignalOperation::Ptr m_signalOperation;
int m_nextCommandToken = 0;
QHash<int, DebuggerCommand> m_commandForToken;
QString m_currentBuiltinResponse;