diff options
author | David Schulz <[email protected]> | 2023-10-25 15:07:53 +0200 |
---|---|---|
committer | David Schulz <[email protected]> | 2023-12-12 11:53:30 +0000 |
commit | c622601db5e657421efcc4eff50e261f8314a141 (patch) | |
tree | 181100e4cfb3595257638470d4e107b5324f2b63 /src/plugins/debugger/cdb | |
parent | d1d573ad16d2e1d86798e5dd010b0716ee8e6090 (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.cpp | 14 | ||||
-rw-r--r-- | src/plugins/debugger/cdb/cdbengine.h | 1 |
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; |