diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index d8f249f5c0e..f2e2d4b8bc0 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -183,10 +183,6 @@ GdbEngine::GdbEngine(DebuggerManager *manager) : m_trkOptions->fromSettings(Core::ICore::instance()->settings()); m_gdbAdapter = 0; - // Output - connect(&m_outputCollector, SIGNAL(byteDelivery(QByteArray)), - this, SLOT(readDebugeeOutput(QByteArray))); - connect(this, SIGNAL(gdbOutputAvailable(int,QString)), m_manager, SLOT(showDebuggerOutput(int,QString)), Qt::QueuedConnection); @@ -1392,7 +1388,6 @@ QString GdbEngine::fullName(const QStringList &candidates) void GdbEngine::shutdown() { debugMessage(_("INITIATE GDBENGINE SHUTDOWN")); - m_outputCollector.shutdown(); initializeVariables(); m_gdbAdapter->shutdown(); } @@ -1410,7 +1405,6 @@ void GdbEngine::detachDebugger() void GdbEngine::exitDebugger() // called from the manager { disconnectDebuggingHelperActions(); - m_outputCollector.shutdown(); initializeVariables(); m_gdbAdapter->shutdown(); } @@ -1467,43 +1461,6 @@ void GdbEngine::startDebugger(const DebuggerStartParametersPtr &sp) connectAdapter(); m_gdbAdapter->startAdapter(); - -/* - QStringList gdbArgs; - gdbArgs.prepend(_("mi")); - gdbArgs.prepend(_("-i")); - - if (startMode() == AttachCore || startMode() == AttachExternal - || startMode() == AttachCrashedExternal) { - // nothing to do - } else if (m_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)) { - // Error message for user is delivered via a signal. - emitStartFailed(); - return; - } - } else { - if (!m_outputCollector.listen()) { - showMessageBox(QMessageBox::Critical, tr("Debugger Startup Failure"), - tr("Cannot set up communication with child process: %1") - .arg(m_outputCollector.errorString())); - emitStartFailed(); - return; - } - gdbArgs.prepend(_("--tty=") + m_outputCollector.serverName()); - - if (!m_startParameters->workingDir.isEmpty()) - m_gdbAdapter->setWorkingDirectory(m_startParameters->workingDir); - if (!m_startParameters->environment.isEmpty()) - m_gdbAdapter->setEnvironment(m_startParameters->environment); - } - m_gdbAdapter->start(loc, gdbArgs); -*/ } void GdbEngine::continueInferior() diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h index 1b6992da053..e6edf2b5934 100644 --- a/src/plugins/debugger/gdb/gdbengine.h +++ b/src/plugins/debugger/gdb/gdbengine.h @@ -34,7 +34,6 @@ #include "debuggermanager.h" // only for StartParameters #include "gdbmi.h" #include "watchutils.h" -#include "outputcollector.h" #include #include @@ -434,8 +433,6 @@ public: void addOptionPages(QList *opts) const; const DebuggerStartParameters &startParameters() const { return *m_startParameters; } - - OutputCollector m_outputCollector; }; } // namespace Internal diff --git a/src/plugins/debugger/gdb/plaingdbadapter.cpp b/src/plugins/debugger/gdb/plaingdbadapter.cpp index 13f5b9e5eea..f0210e9d63c 100644 --- a/src/plugins/debugger/gdb/plaingdbadapter.cpp +++ b/src/plugins/debugger/gdb/plaingdbadapter.cpp @@ -82,6 +82,10 @@ PlainGdbAdapter::PlainGdbAdapter(GdbEngine *engine, QObject *parent) // FIXME: // connect(&m_stubProc, SIGNAL(wrapperStopped()), // m_manager, SLOT(exitDebugger())); + + // Output + connect(&m_outputCollector, SIGNAL(byteDelivery(QByteArray)), + engine, SLOT(readDebugeeOutput(QByteArray))); } void PlainGdbAdapter::startAdapter() @@ -106,12 +110,12 @@ void PlainGdbAdapter::startAdapter() return; } } else { - if (!m_engine->m_outputCollector.listen()) { + if (!m_outputCollector.listen()) { emitAdapterStartFailed(tr("Cannot set up communication with child process: %1") - .arg(m_engine->m_outputCollector.errorString())); + .arg(m_outputCollector.errorString())); return; } - gdbArgs.prepend(_("--tty=") + m_engine->m_outputCollector.serverName()); + gdbArgs.prepend(_("--tty=") + m_outputCollector.serverName()); if (!startParameters().workingDir.isEmpty()) m_gdbProc.setWorkingDirectory(startParameters().workingDir); @@ -202,6 +206,7 @@ void PlainGdbAdapter::interruptInferior() void PlainGdbAdapter::shutdown() { debugMessage(_("PLAIN ADAPTER SHUTDOWN %1").arg(state())); + m_outputCollector.shutdown(); switch (state()) { case InferiorRunningRequested: diff --git a/src/plugins/debugger/gdb/plaingdbadapter.h b/src/plugins/debugger/gdb/plaingdbadapter.h index 1751847a536..9f2c4f0120a 100644 --- a/src/plugins/debugger/gdb/plaingdbadapter.h +++ b/src/plugins/debugger/gdb/plaingdbadapter.h @@ -32,6 +32,7 @@ #include "abstractgdbadapter.h" #include "gdbengine.h" +#include "outputcollector.h" #include @@ -82,6 +83,7 @@ private: QProcess m_gdbProc; Utils::ConsoleProcess m_stubProc; + OutputCollector m_outputCollector; }; } // namespace Internal