diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h index c65c479d6a0..c0261ae06ab 100644 --- a/src/plugins/debugger/debuggerengine.h +++ b/src/plugins/debugger/debuggerengine.h @@ -141,8 +141,8 @@ public: void addExpectedSignal(const QString &signal) { m_expectedSignals.append(signal); } QStringList expectedSignals() const { return m_expectedSignals; } - // For QNX debugging - bool useCtrlCStub = false; + void setUseCtrlCStub(bool on) { m_useCtrlCStub = on; } + bool useCtrlCStub() const { return m_useCtrlCStub; } // Used by Android to avoid false positives on warnOnRelease bool skipExecutableValidation = false; @@ -246,6 +246,8 @@ private: QString m_commandsAfterConnect; // Additional commands to post after connection to debug target QStringList m_expectedSignals; // Used by Valgrind + + bool m_useCtrlCStub = false; // For QNX debugging. }; namespace Internal { diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index fbdc18af38d..199fc41161d 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -128,11 +128,6 @@ void DebuggerRunTool::setSkipExecutableValidation(bool on) m_runParameters.skipExecutableValidation = on; } -void DebuggerRunTool::setUseCtrlCStub(bool on) -{ - m_runParameters.useCtrlCStub = on; -} - void DebuggerRunTool::setBreakOnMain(bool on) { m_runParameters.breakOnMain = on; diff --git a/src/plugins/debugger/debuggerruncontrol.h b/src/plugins/debugger/debuggerruncontrol.h index 40b18efcd3c..a133c14ee3a 100644 --- a/src/plugins/debugger/debuggerruncontrol.h +++ b/src/plugins/debugger/debuggerruncontrol.h @@ -66,7 +66,6 @@ public: void setUseTargetAsync(bool on); void setSkipExecutableValidation(bool on); - void setUseCtrlCStub(bool on); void setIosPlatform(const QString &platform); void setDeviceSymbolsRoot(const QString &deviceSymbolsRoot); diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index d33cd965a05..b3bc7bb44da 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -3827,12 +3827,11 @@ void GdbEngine::setupEngine() CHECK_STATE(EngineSetupRequested); showMessage("TRYING TO START ADAPTER"); - if (isRemoteEngine()) - m_gdbProc.setUseCtrlCStub(runParameters().useCtrlCStub); // This is only set for QNX - const DebuggerRunParameters &rp = runParameters(); - CommandLine gdbCommand = rp.debugger.command; + if (isRemoteEngine()) + m_gdbProc.setUseCtrlCStub(rp.useCtrlCStub()); // This is only set for QNX + CommandLine gdbCommand = rp.debugger.command; if (usesOutputCollector()) { if (!m_outputCollector.listen()) { handleAdapterStartFailed(Tr::tr("Cannot set up communication with child process: %1") diff --git a/src/plugins/qnx/qnxdebugsupport.cpp b/src/plugins/qnx/qnxdebugsupport.cpp index eca8eeebec6..75d3a4b0de5 100644 --- a/src/plugins/qnx/qnxdebugsupport.cpp +++ b/src/plugins/qnx/qnxdebugsupport.cpp @@ -133,9 +133,10 @@ void showAttachToProcessDialog() auto runControl = new RunControl(ProjectExplorer::Constants::DEBUG_RUN_MODE); runControl->copyDataFromRunConfiguration(runConfig); auto debugger = new DebuggerRunTool(runControl); + DebuggerRunParameters &rp = debugger->runParameters(); debugger->setId("QnxAttachDebugSupport"); debugger->setupPortsGatherer(); - debugger->setUseCtrlCStub(true); + rp.setUseCtrlCStub(true); if (debugger->isCppDebugging()) { auto pdebugRunner = new ProcessRunner(runControl); pdebugRunner->setId("PDebugRunner"); @@ -147,7 +148,6 @@ void showAttachToProcessDialog() debugger->addStartDependency(pdebugRunner); } - DebuggerRunParameters &rp = debugger->runParameters(); rp.setStartMode(AttachToRemoteServer); rp.setCloseMode(DetachAtClose); rp.setSymbolFile(localExecutable); @@ -206,7 +206,7 @@ public: DebuggerRunParameters &rp = debugger->runParameters(); rp.setStartMode(AttachToRemoteServer); rp.setCloseMode(KillAtClose); - debugger->setUseCtrlCStub(true); + rp.setUseCtrlCStub(true); rp.setSolibSearchPath(FileUtils::toFilePathList(searchPaths(k))); if (auto qtVersion = dynamic_cast(QtSupport::QtKitAspect::qtVersion(k))) { debugger->setSysRoot(qtVersion->qnxTarget());