diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 18641811395af143b37f15c32b9bc54599d90d24..3e43fb20a178fffa05df08a593a2816c3317067a 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -154,7 +154,8 @@ static const char *stateName(int s) DebuggerStartParameters::DebuggerStartParameters() : attachPID(-1), useTerminal(false), - toolChainType(ProjectExplorer::ToolChain::UNKNOWN) + toolChainType(ProjectExplorer::ToolChain::UNKNOWN), + startMode(NoStartMode) {} void DebuggerStartParameters::clear() @@ -172,6 +173,7 @@ void DebuggerStartParameters::clear() remoteArchitecture.clear(); serverStartScript.clear(); toolChainType = ProjectExplorer::ToolChain::UNKNOWN; + startMode = NoStartMode; } @@ -210,8 +212,6 @@ void DebuggerManager::init() m_status = -1; m_busy = false; - m_runControl = 0; - m_modulesHandler = 0; m_registerHandler = 0; @@ -809,15 +809,14 @@ static IDebuggerEngine *determineDebuggerEngine(int /* pid */, #endif } -void DebuggerManager::startNewDebugger(DebuggerRunControl *runControl, - const QSharedPointer<DebuggerStartParameters> &startParameters) +void DebuggerManager::startNewDebugger(const DebuggerStartParametersPtr &sp) { + m_startParameters = sp; if (Debugger::Constants::Internal::debug) - qDebug() << Q_FUNC_INFO << '\n' << *startParameters; + qDebug() << Q_FUNC_INFO << '\n' << *m_startParameters; - m_startParameters = startParameters; - m_inferiorPid = startParameters->attachPID > 0 ? startParameters->attachPID : 0; - m_runControl = runControl; + m_inferiorPid = m_startParameters->attachPID > 0 + ? m_startParameters->attachPID : 0; const QString toolChainName = ProjectExplorer::ToolChain::toolChainName(static_cast<ProjectExplorer::ToolChain::ToolChainType>(m_startParameters->toolChainType)); emit debugModeRequested(); @@ -1437,7 +1436,7 @@ void DebuggerManager::showQtDumperLibraryWarning(const QString &details) DebuggerStartMode DebuggerManager::startMode() const { - return m_runControl ? m_runControl->startMode() : NoStartMode; + return m_startParameters->startMode; } void DebuggerManager::reloadFullStack() diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h index 571104cf2f1d493e775ae2501677f22b0a46a521..32a8fa3210696eaf61ac6b97b4e062589004e1f3 100644 --- a/src/plugins/debugger/debuggermanager.h +++ b/src/plugins/debugger/debuggermanager.h @@ -164,8 +164,10 @@ public: QString dumperLibrary; QStringList dumperLibraryLocations; + DebuggerStartMode startMode; }; +typedef QSharedPointer<DebuggerStartParameters> DebuggerStartParametersPtr; QDebug operator<<(QDebug str, const DebuggerStartParameters &); class IDebuggerEngine; @@ -251,7 +253,7 @@ private: virtual qint64 inferiorPid() const = 0; - virtual QSharedPointer<DebuggerStartParameters> startParameters() const = 0; + virtual DebuggerStartParametersPtr startParameters() const = 0; }; @@ -274,12 +276,11 @@ public: QLabel *statusLabel() const { return m_statusLabel; } IDebuggerEngine *currentEngine() const { return m_engine; } - virtual QSharedPointer<DebuggerStartParameters> startParameters() const; + virtual DebuggerStartParametersPtr startParameters() const; virtual qint64 inferiorPid() const; public slots: - void startNewDebugger(DebuggerRunControl *runControl, - const QSharedPointer<DebuggerStartParameters> &startParameters); + void startNewDebugger(const DebuggerStartParametersPtr &sp); void exitDebugger(); void setSimpleDockWidgetArrangement(); @@ -399,7 +400,6 @@ public: int status() const { return m_status; } // FIXME: hide this in the engines? DebuggerStartMode startMode() const; - DebuggerRunControl *runControl() const { return m_runControl; } QList<Symbol> moduleSymbols(const QString &moduleName); @@ -432,10 +432,7 @@ private: void setToolTipExpression(const QPoint &mousePos, TextEditor::ITextEditor *editor, int cursorPos); // FIXME: Remove engine-specific state - QSharedPointer<DebuggerStartParameters> m_startParameters; - DebuggerRunControl *m_runControl; - QString m_dumperLib; - QStringList m_dumperLibLocations; + DebuggerStartParametersPtr m_startParameters; qint64 m_inferiorPid; diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp index 4de813d26dc7e8a17d846bef168dd44c5dabac5b..7a6f2ce6299f16f8eff3c517291568a2dc588b06 100644 --- a/src/plugins/debugger/debuggerrunner.cpp +++ b/src/plugins/debugger/debuggerrunner.cpp @@ -178,7 +178,7 @@ DebuggerRunControl::DebuggerRunControl(DebuggerManager *manager, void DebuggerRunControl::start() { m_running = true; - m_manager->startNewDebugger(this, m_startParameters); + m_manager->startNewDebugger(m_startParameters); } void DebuggerRunControl::slotAddToOutputWindowInline(const QString &data) diff --git a/src/plugins/debugger/debuggerrunner.h b/src/plugins/debugger/debuggerrunner.h index 71ffe38f369d1d32e994f6ead8abbe6fc46db111..ec43678e94ecc4014afa815121e2c1086e290340 100644 --- a/src/plugins/debugger/debuggerrunner.h +++ b/src/plugins/debugger/debuggerrunner.h @@ -69,13 +69,13 @@ public: virtual ProjectExplorer::RunControl *run(RunConfigurationPtr runConfiguration, const QString &mode, - const QSharedPointer<DebuggerStartParameters> &sp, + const DebuggerStartParametersPtr &sp, DebuggerStartMode startMode); static RunConfigurationPtr createDefaultRunConfiguration(const QString &executable = QString()); private: - QSharedPointer<DebuggerStartParameters> m_startParameters; + DebuggerStartParametersPtr m_startParameters; DebuggerManager *m_manager; }; @@ -88,7 +88,7 @@ class DebuggerRunControl public: DebuggerRunControl(DebuggerManager *manager, DebuggerStartMode mode, - const QSharedPointer<DebuggerStartParameters> &sp, + const DebuggerStartParametersPtr &startParamters, ApplicationRunConfigurationPtr runConfiguration); DebuggerStartMode startMode() const { return m_mode; } @@ -99,6 +99,7 @@ public: virtual bool isRunning() const; Q_SLOT void debuggingFinished(); + DebuggerStartParametersPtr startParameters() { return m_startParameters; } signals: void stopRequested(); @@ -108,7 +109,7 @@ private slots: private: const DebuggerStartMode m_mode; - const QSharedPointer<DebuggerStartParameters> m_startParameters; + DebuggerStartParametersPtr m_startParameters; DebuggerManager *m_manager; bool m_running; };