diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp index b6bcfde1344..a8b26ac6455 100644 --- a/src/plugins/android/androiddebugsupport.cpp +++ b/src/plugins/android/androiddebugsupport.cpp @@ -90,8 +90,8 @@ public: setProducer([](RunControl *runControl) { DebuggerRunTool *debugger = new DebuggerRunTool(runControl); debugger->setId("AndroidDebugger"); - debugger->setupPortsGatherer(); DebuggerRunParameters &rp = debugger->runParameters(); + rp.setupPortsGatherer(runControl); rp.setSkipDebugServer(true); rp.setLldbPlatform("remote-android"); diff --git a/src/plugins/boot2qt/qdbdevicedebugsupport.cpp b/src/plugins/boot2qt/qdbdevicedebugsupport.cpp index 4b6b5aa57bd..bfed74acc93 100644 --- a/src/plugins/boot2qt/qdbdevicedebugsupport.cpp +++ b/src/plugins/boot2qt/qdbdevicedebugsupport.cpp @@ -117,7 +117,7 @@ public: worker->setId("QdbDeviceDebugSupport"); DebuggerRunParameters &rp = worker->runParameters(); - worker->setupPortsGatherer(); + rp.setupPortsGatherer(runControl); rp.setStartMode(Debugger::AttachToRemoteServer); rp.setCloseMode(KillAndExitMonitorAtClose); rp.setUseContinueInsteadOfRun(true); diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 538f50739bf..2723943640a 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -210,6 +210,14 @@ void DebuggerRunParameters::setBreakOnMainNextTime() breakOnMainNextTime = true; } +void DebuggerRunParameters::setupPortsGatherer(ProjectExplorer::RunControl *runControl) const +{ + if (isCppDebugging()) + runControl->requestDebugChannel(); + if (isQmlDebugging()) + runControl->requestQmlChannel(); +} + Result<> DebuggerRunParameters::fixupParameters(ProjectExplorer::RunControl *runControl) { if (m_symbolFile.isEmpty()) diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h index ac259bbdc33..c38b66fc00c 100644 --- a/src/plugins/debugger/debuggerengine.h +++ b/src/plugins/debugger/debuggerengine.h @@ -77,6 +77,8 @@ public: static void setBreakOnMainNextTime(); + void setupPortsGatherer(ProjectExplorer::RunControl *runControl) const; + Utils::Result<> fixupParameters(ProjectExplorer::RunControl *runControl); void setStartMode(DebuggerStartMode startMode); diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index 2588c1c8481..71cbe824e26 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -791,15 +791,6 @@ void DebuggerRunTool::stop() emit canceled(); } -void DebuggerRunTool::setupPortsGatherer() -{ - if (d->m_runParameters.isCppDebugging()) - runControl()->requestDebugChannel(); - - if (d->m_runParameters.isQmlDebugging()) - runControl()->requestQmlChannel(); -} - DebuggerRunParameters &DebuggerRunTool::runParameters() { return d->m_runParameters; diff --git a/src/plugins/debugger/debuggerruncontrol.h b/src/plugins/debugger/debuggerruncontrol.h index 2d09ff6734a..137e7fdb889 100644 --- a/src/plugins/debugger/debuggerruncontrol.h +++ b/src/plugins/debugger/debuggerruncontrol.h @@ -25,8 +25,6 @@ public: void start() final; void stop() final; - void setupPortsGatherer(); - DebuggerRunParameters &runParameters(); signals: diff --git a/src/plugins/qnx/qnxdebugsupport.cpp b/src/plugins/qnx/qnxdebugsupport.cpp index 5ed5dbb67b5..040d2d2c5da 100644 --- a/src/plugins/qnx/qnxdebugsupport.cpp +++ b/src/plugins/qnx/qnxdebugsupport.cpp @@ -136,7 +136,7 @@ void showAttachToProcessDialog() auto debugger = new DebuggerRunTool(runControl); DebuggerRunParameters &rp = debugger->runParameters(); debugger->setId("QnxAttachDebugSupport"); - debugger->setupPortsGatherer(); + rp.setupPortsGatherer(runControl); rp.setUseCtrlCStub(true); if (rp.isCppDebugging()) { const auto modifier = [runControl](Process &process) { @@ -173,8 +173,6 @@ public: debugger->setId("QnxDebugSupport"); runControl->postMessage(Tr::tr("Preparing remote side..."), LogMessageFormat); - debugger->setupPortsGatherer(); - const auto modifier = [runControl](Process &process) { CommandLine cmd = runControl->commandLine(); QStringList arguments; @@ -199,6 +197,7 @@ public: Kit *k = runControl->kit(); DebuggerRunParameters &rp = debugger->runParameters(); + rp.setupPortsGatherer(runControl); rp.setStartMode(AttachToRemoteServer); rp.setCloseMode(KillAtClose); rp.setUseCtrlCStub(true); diff --git a/src/plugins/qtapplicationmanager/appmanagerruncontrol.cpp b/src/plugins/qtapplicationmanager/appmanagerruncontrol.cpp index f7e6f04f340..1be757b9bf0 100644 --- a/src/plugins/qtapplicationmanager/appmanagerruncontrol.cpp +++ b/src/plugins/qtapplicationmanager/appmanagerruncontrol.cpp @@ -155,7 +155,6 @@ public: setProducer([](RunControl *runControl) { DebuggerRunTool *debugger = new DebuggerRunTool(runControl); debugger->setId("ApplicationManagerPlugin.Debug.Support"); - debugger->setupPortsGatherer(); auto debuggee = createInferiorRunner(runControl, QmlDebuggerServices); debugger->addStartDependency(debuggee); @@ -195,6 +194,7 @@ public: } Debugger::DebuggerRunParameters &rp = debugger->runParameters(); + rp.setupPortsGatherer(runControl); rp.setStartMode(Debugger::AttachToRemoteServer); rp.setCloseMode(Debugger::KillAndExitMonitorAtClose); diff --git a/src/plugins/remotelinux/remotelinuxdebugsupport.cpp b/src/plugins/remotelinux/remotelinuxdebugsupport.cpp index 0cd33b696e8..61646929058 100644 --- a/src/plugins/remotelinux/remotelinuxdebugsupport.cpp +++ b/src/plugins/remotelinux/remotelinuxdebugsupport.cpp @@ -52,7 +52,7 @@ public: auto debugger = new DebuggerRunTool(rc); DebuggerRunParameters &rp = debugger->runParameters(); debugger->setId("RemoteLinuxDebugWorker"); - debugger->setupPortsGatherer(); + rp.setupPortsGatherer(rc); rp.setUseTerminal(false); rp.setAddQmlServerInferiorCmdArgIfNeeded(true);