diff --git a/src/plugins/debugger/gdb/abstractgdbadapter.h b/src/plugins/debugger/gdb/abstractgdbadapter.h index ba32496c0db1f2a5ea2c1257e98f5e2904226176..5f055ddfcf357cc30726f09303de5ec66f860b2b 100644 --- a/src/plugins/debugger/gdb/abstractgdbadapter.h +++ b/src/plugins/debugger/gdb/abstractgdbadapter.h @@ -81,12 +81,15 @@ public: virtual void setEnvironment(const QStringList &env) = 0; virtual bool isTrkAdapter() const = 0; - virtual void startAdapter(const DebuggerStartParametersPtr &sp) = 0; + virtual void startAdapter() = 0; virtual void prepareInferior() = 0; virtual void startInferior() = 0; virtual void interruptInferior() = 0; virtual void shutdown() = 0; + virtual const DebuggerStartParameters &startParameters() const + { return m_engine->startParameters(); } + signals: void adapterStarted(); void adapterStartFailed(const QString &msg); diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index a57b8e0180b7e4d61e7fb26971c2fc28fb8f8dba..7f88fb9e0363f09d04ba2968f680f5b87905eb90 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -1521,6 +1521,8 @@ void GdbEngine::startDebugger(const DebuggerStartParametersPtr &sp) // initializeVariables()); //QTC_ASSERT(m_gdbAdapter == 0, delete m_gdbAdapter; m_gdbAdapter = 0); + m_startParameters = sp; + if (m_gdbAdapter) disconnectAdapter(); @@ -1532,9 +1534,7 @@ void GdbEngine::startDebugger(const DebuggerStartParametersPtr &sp) initializeVariables(); connectAdapter(); - m_startParameters = sp; - - m_gdbAdapter->startAdapter(sp); + m_gdbAdapter->startAdapter(); /* QStringList gdbArgs; diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h index 31959895e07a9aad77e76bc3521903a0671a2868..bc25ffbf3e8722e70287abbfac0e63ed40c0827c 100644 --- a/src/plugins/debugger/gdb/gdbengine.h +++ b/src/plugins/debugger/gdb/gdbengine.h @@ -95,8 +95,6 @@ private: friend class TrkGdbAdapter; friend class RemoteGdbAdapter; - const DebuggerStartParameters &startParameters() const - { return *m_startParameters; } // // IDebuggerEngine implementation // @@ -452,6 +450,8 @@ public: void showMessageBox(int icon, const QString &title, const QString &text); void debugMessage(const QString &msg); void addOptionPages(QList<Core::IOptionsPage*> *opts) const; + const DebuggerStartParameters &startParameters() const + { return *m_startParameters; } OutputCollector m_outputCollector; }; diff --git a/src/plugins/debugger/gdb/plaingdbadapter.cpp b/src/plugins/debugger/gdb/plaingdbadapter.cpp index f29def0afdfa0650ac2efdcba643e44d0df65d41..68630fff7a73afa0b016ff4c065e361cfcba5f62 100644 --- a/src/plugins/debugger/gdb/plaingdbadapter.cpp +++ b/src/plugins/debugger/gdb/plaingdbadapter.cpp @@ -83,24 +83,23 @@ PlainGdbAdapter::PlainGdbAdapter(GdbEngine *engine, QObject *parent) // m_manager, SLOT(exitDebugger())); } -void PlainGdbAdapter::startAdapter(const DebuggerStartParametersPtr &sp) +void PlainGdbAdapter::startAdapter() { QTC_ASSERT(state() == AdapterNotRunning, qDebug() << state()); setState(AdapterStarting); debugMessage(_("TRYING TO START ADAPTER")); - m_startParameters = sp; QStringList gdbArgs; gdbArgs.prepend(_("mi")); gdbArgs.prepend(_("-i")); - if (m_startParameters->useTerminal) { + if (startParameters().useTerminal) { m_stubProc.stop(); // We leave the console open, so recycle it now. - m_stubProc.setWorkingDirectory(m_startParameters->workingDir); - m_stubProc.setEnvironment(m_startParameters->environment); - if (!m_stubProc.start(m_startParameters->executable, - m_startParameters->processArgs)) { + m_stubProc.setWorkingDirectory(startParameters().workingDir); + m_stubProc.setEnvironment(startParameters().environment); + if (!m_stubProc.start(startParameters().executable, + startParameters().processArgs)) { // Error message for user is delivered via a signal. emitAdapterStartFailed(QString()); return; @@ -113,10 +112,10 @@ void PlainGdbAdapter::startAdapter(const DebuggerStartParametersPtr &sp) } gdbArgs.prepend(_("--tty=") + m_engine->m_outputCollector.serverName()); - if (!m_startParameters->workingDir.isEmpty()) - setWorkingDirectory(m_startParameters->workingDir); - if (!m_startParameters->environment.isEmpty()) - setEnvironment(m_startParameters->environment); + if (!startParameters().workingDir.isEmpty()) + setWorkingDirectory(startParameters().workingDir); + if (!startParameters().environment.isEmpty()) + setEnvironment(startParameters().environment); } QString location = theDebuggerStringSetting(GdbLocation); @@ -135,9 +134,9 @@ void PlainGdbAdapter::prepareInferior() { QTC_ASSERT(state() == AdapterStarted, qDebug() << state()); setState(InferiorPreparing); - if (!m_startParameters->processArgs.isEmpty()) + if (!startParameters().processArgs.isEmpty()) m_engine->postCommand(_("-exec-arguments ") - + m_startParameters->processArgs.join(_(" "))); + + startParameters().processArgs.join(_(" "))); QFileInfo fi(m_engine->startParameters().executable); m_engine->postCommand(_("-file-exec-and-symbols \"%1\"").arg(fi.absoluteFilePath()), CB(handleFileExecAndSymbols)); diff --git a/src/plugins/debugger/gdb/plaingdbadapter.h b/src/plugins/debugger/gdb/plaingdbadapter.h index 78fd23a70a178bf1122817ce4d57148d0d9eeba2..f10d822da7f6dc9b2dc4d1704d26e528ff86aa33 100644 --- a/src/plugins/debugger/gdb/plaingdbadapter.h +++ b/src/plugins/debugger/gdb/plaingdbadapter.h @@ -61,7 +61,7 @@ public: void setEnvironment(const QStringList &env) { m_gdbProc.setEnvironment(env); } bool isTrkAdapter() const { return false; } - void startAdapter(const DebuggerStartParametersPtr &sp); + void startAdapter(); void prepareInferior(); void startInferior(); void interruptInferior(); @@ -83,7 +83,6 @@ private: Q_SLOT void stubError(const QString &msg); QProcess m_gdbProc; - DebuggerStartParametersPtr m_startParameters; Core::Utils::ConsoleProcess m_stubProc; }; diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp index 0b673abdb85b428e465d02f458671afb432966af..05980ba90e59a211ed036fe14124d34d3353ba26 100644 --- a/src/plugins/debugger/gdb/trkgdbadapter.cpp +++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp @@ -1344,12 +1344,11 @@ void TrkGdbAdapter::handleGdbStateChanged(QProcess::ProcessState newState) logMessage(_("GDB: Process State %1").arg(newState)); } -void TrkGdbAdapter::startAdapter(const DebuggerStartParametersPtr &sp) +void TrkGdbAdapter::startAdapter() { QTC_ASSERT(state() == AdapterNotRunning, qDebug() << state()); setState(AdapterStarting); debugMessage(_("TRYING TO START ADAPTER")); - m_startParameters = sp; logMessage(QLatin1String("### Starting TrkGdbAdapter")); if (m_options->mode == TrkOptions::BlueTooth) { const QString device = effectiveTrkDevice(); diff --git a/src/plugins/debugger/gdb/trkgdbadapter.h b/src/plugins/debugger/gdb/trkgdbadapter.h index 6359a428478fc95fa0695aa0e226526a3227d3f4..7c6ecda322a3dcd84f9b0ced428d7b637fd13888 100644 --- a/src/plugins/debugger/gdb/trkgdbadapter.h +++ b/src/plugins/debugger/gdb/trkgdbadapter.h @@ -32,6 +32,7 @@ #include "trkutils.h" #include "trkdevice.h" +#include "trkoptions.h" #include "abstractgdbadapter.h" #include <QtCore/QHash> @@ -48,8 +49,6 @@ namespace Debugger { namespace Internal { -struct TrkOptions; - struct GdbResult { QByteArray data; @@ -101,7 +100,6 @@ private: QProcess m_gdbProc; QProcess m_rfcommProc; bool m_running; - DebuggerStartParametersPtr m_startParameters; void debugMessage(const QString &msg) { m_engine->debugMessage(msg); } public: @@ -117,7 +115,7 @@ public: void setEnvironment(const QStringList &env); bool isTrkAdapter() const { return true; } - void startAdapter(const DebuggerStartParametersPtr &sp); + void startAdapter(); void prepareInferior(); void startInferior(); void interruptInferior();