diff options
author | Jarek Kobus <[email protected]> | 2025-04-17 10:09:35 +0200 |
---|---|---|
committer | Jarek Kobus <[email protected]> | 2025-04-17 09:41:29 +0000 |
commit | 5831d818beef22833e9d4f1da3863c74bb57202b (patch) | |
tree | f2cd583bf776f8102c8657d57c0e7e2b3631c805 | |
parent | be69da2066ea6eccaff2c3f10fc66795915af931 (diff) |
Debugger: Get rid of DebuggerRunTool
Task-number: QTCREATORBUG-29168
Change-Id: If663b684825ae63f11bd6025be7382cf07a067a7
Reviewed-by: hjk <[email protected]>
-rw-r--r-- | src/plugins/debugger/cdb/cdbengine.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/debuggerruncontrol.cpp | 105 | ||||
-rw-r--r-- | src/plugins/debugger/debuggerruncontrol.h | 22 | ||||
-rw-r--r-- | src/plugins/debugger/uvsc/uvscengine.cpp | 2 | ||||
-rw-r--r-- | src/plugins/ios/iosrunner.cpp | 4 |
5 files changed, 4 insertions, 131 deletions
diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index 81e235f9467..e813c5c1839 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -135,7 +135,7 @@ namespace Internal { static const char localsPrefixC[] = "local."; -// Accessed by DebuggerRunTool +// Accessed by debuggerRecipe() DebuggerEngine *createCdbEngine() { return new CdbEngine; diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index c29fb2b188c..acc942b7539 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -33,7 +33,6 @@ #include <solutions/tasking/barrier.h> #include <solutions/tasking/conditional.h> -#include <solutions/tasking/tasktreerunner.h> #include <utils/algorithm.h> #include <utils/checkablemessagebox.h> @@ -125,16 +124,6 @@ private: int m_snapshotCounter = 0; }; -class DebuggerRunToolPrivate -{ -public: - DebuggerRunTool *q = nullptr; - DebuggerRunParameters m_runParameters; - - // TaskTree - Tasking::TaskTreeRunner m_taskTreeRunner = {}; -}; - } // namespace Internal ExecutableItem coreFileRecipe(RunControl *runControl, @@ -727,65 +716,6 @@ void EnginesDriver::showMessage(const QString &msg, int channel, int timeout) } } -void DebuggerRunTool::start() -{ - const Storage<DebuggerRunParameters> parametersStorage; - const Storage<EnginesDriver> driverStorage; - const Storage<FilePath> tempCoreFileStorage; - const Storage<std::unique_ptr<Process>> terminalStorage; - - const auto onSetup = [this, parametersStorage] { - RunInterface *iface = runStorage().activeStorage(); - connect(this, &DebuggerRunTool::canceled, iface, &RunInterface::canceled); - connect(iface, &RunInterface::started, this, &RunWorker::reportStarted); - *parametersStorage = d->m_runParameters; - parametersStorage->setAttachPid(runControl()->attachPid()); - }; - - const auto terminalKicker = [parametersStorage, driverStorage, terminalStorage] - (const SingleBarrier &barrier) { - return terminalRecipe(parametersStorage, driverStorage, terminalStorage, barrier); - }; - - const auto debugServerKicker = [runControl = runControl(), parametersStorage](const SingleBarrier &barrier) { - return debugServerRecipe(runControl, parametersStorage, barrier); - }; - - const auto onDone = [parametersStorage, tempCoreFileStorage] { - if (tempCoreFileStorage->exists()) - tempCoreFileStorage->removeFile(); - if (parametersStorage->isSnapshot() && !parametersStorage->coreFile().isEmpty()) - parametersStorage->coreFile().removeFile(); - }; - - const Group recipe { - runStorage(), - parametersStorage, - driverStorage, - terminalStorage, - tempCoreFileStorage, - continueOnError, - onGroupSetup(onSetup), - Group { - coreFileRecipe(runControl(), parametersStorage, tempCoreFileStorage), - When (terminalKicker) >> Do { - fixupParamsRecipe(runControl(), parametersStorage), - When (debugServerKicker) >> Do { - startEnginesRecipe(runControl(), parametersStorage, driverStorage) - } - } - }.withCancel(canceler()), - finalizeRecipe(driverStorage, terminalStorage), - onGroupDone(onDone) - }; - d->m_taskTreeRunner.start(recipe, {}, [this](DoneWith result) { - if (result == DoneWith::Success) - reportStopped(); - else - reportFailure(); - }); -} - Group debuggerRecipe(RunControl *runControl, const DebuggerRunParameters &initialParameters, const std::function<void(DebuggerRunParameters &)> ¶metersModifier) { @@ -843,41 +773,6 @@ RunWorker *createDebuggerWorker(RunControl *runControl, const DebuggerRunParamet debuggerRecipe(runControl, initialParameters, parametersModifier)); } -void DebuggerRunTool::stop() -{ - if (!d->m_taskTreeRunner.isRunning()) - return; - - emit canceled(); -} - -DebuggerRunParameters &DebuggerRunTool::runParameters() -{ - return d->m_runParameters; -} - -DebuggerRunTool::DebuggerRunTool(RunControl *runControl) - : RunWorker(runControl) - , d(new DebuggerRunToolPrivate{this, DebuggerRunParameters::fromRunControl(runControl)}) -{ - setId("DebuggerRunTool"); - runControl->setIcon(ProjectExplorer::Icons::DEBUG_START_SMALL_TOOLBAR); - runControl->setPromptToStop([](bool *optionalPrompt) { - return RunControl::showPromptToStopDialog( - Tr::tr("Close Debugging Session"), - Tr::tr("A debugging session is still in progress. " - "Terminating the session in the current" - " state can leave the target in an inconsistent state." - " Would you still like to terminate it?"), - QString(), QString(), optionalPrompt); - }); -} - -DebuggerRunTool::~DebuggerRunTool() -{ - delete d; -} - class DebuggerRunWorkerFactory final : public ProjectExplorer::RunWorkerFactory { public: diff --git a/src/plugins/debugger/debuggerruncontrol.h b/src/plugins/debugger/debuggerruncontrol.h index 618e661218f..735d4636e2a 100644 --- a/src/plugins/debugger/debuggerruncontrol.h +++ b/src/plugins/debugger/debuggerruncontrol.h @@ -12,8 +12,6 @@ namespace Debugger { -namespace Internal { class DebuggerRunToolPrivate; } - DEBUGGER_EXPORT Tasking::Group debuggerRecipe( ProjectExplorer::RunControl *runControl, const DebuggerRunParameters &initialParameters, @@ -24,26 +22,6 @@ DEBUGGER_EXPORT ProjectExplorer::RunWorker *createDebuggerWorker( const DebuggerRunParameters &initialParameters, const std::function<void(DebuggerRunParameters &)> ¶metersModifier = {}); -class DEBUGGER_EXPORT DebuggerRunTool final : public ProjectExplorer::RunWorker -{ - Q_OBJECT - -public: - explicit DebuggerRunTool(ProjectExplorer::RunControl *runControl); - ~DebuggerRunTool() override; - - void start() final; - void stop() final; - - DebuggerRunParameters &runParameters(); - -signals: - void canceled(); - -private: - Internal::DebuggerRunToolPrivate *d; -}; - void setupDebuggerRunWorker(); class SimpleDebugRunnerFactory final : public ProjectExplorer::RunWorkerFactory diff --git a/src/plugins/debugger/uvsc/uvscengine.cpp b/src/plugins/debugger/uvsc/uvscengine.cpp index 2125122d9ac..71802309ca9 100644 --- a/src/plugins/debugger/uvsc/uvscengine.cpp +++ b/src/plugins/debugger/uvsc/uvscengine.cpp @@ -58,7 +58,7 @@ static void allowRootLocals(const FilePath &projectFile) } } -// Accessed by DebuggerRunTool. +// Accessed by debuggerRecipe() DebuggerEngine *createUvscEngine() { return new UvscEngine; diff --git a/src/plugins/ios/iosrunner.cpp b/src/plugins/ios/iosrunner.cpp index 82bec17605f..4268623f5a5 100644 --- a/src/plugins/ios/iosrunner.cpp +++ b/src/plugins/ios/iosrunner.cpp @@ -858,10 +858,10 @@ static RunWorker *createWorker(RunControl *runControl) QTC_ASSERT(isIosDeviceInstance == isIosDeviceType, runControl->postMessage(Tr::tr("Internal error."), ErrorMessageFormat); return nullptr); DebuggerRunParameters rp = DebuggerRunParameters::fromRunControl(runControl); - // TODO cannot use setupPortsGatherer() from DebuggerRunTool, because that also requests + // TODO cannot use setupPortsGatherer(), because that also requests // the "debugChannel", which then results in runControl trying to retrieve ports&URL for that // via IDevice, which doesn't really work with the iOS setup, and also completely changes - // how the DebuggerRunTool works, breaking debugging on iOS <= 16 devices. + // how the debuggerRecipe() works, breaking debugging on iOS <= 16 devices. if (rp.isQmlDebugging()) runControl->requestQmlChannel(); |