diff --git a/src/plugins/debugger/debugger.qbs b/src/plugins/debugger/debugger.qbs index 05e53edbe7bd0cbcd147855b8a08ae1aa96c9ba1..50933d0280c1362ba5e47d7257fcb692c3f5671e 100644 --- a/src/plugins/debugger/debugger.qbs +++ b/src/plugins/debugger/debugger.qbs @@ -123,9 +123,7 @@ QtcPlugin { "localgdbprocess.cpp", "localgdbprocess.h", "localplaingdbadapter.cpp", "localplaingdbadapter.h", "pythongdbengine.cpp", - "remotegdbprocess.cpp", "remotegdbprocess.h", "remotegdbserveradapter.cpp", "remotegdbserveradapter.h", - "remoteplaingdbadapter.cpp", "remoteplaingdbadapter.h", "startgdbserverdialog.cpp", "startgdbserverdialog.h", "termgdbadapter.cpp", "termgdbadapter.h" ] diff --git a/src/plugins/debugger/gdb/gdb.pri b/src/plugins/debugger/gdb/gdb.pri index 7a100e6851910aede8fadf2252f445ef5c06baaa..3714bc635e08db0c12b763491d5b1428a7f2ae05 100644 --- a/src/plugins/debugger/gdb/gdb.pri +++ b/src/plugins/debugger/gdb/gdb.pri @@ -8,8 +8,6 @@ HEADERS += \ $$PWD/remotegdbserveradapter.h \ $$PWD/abstractgdbprocess.h \ $$PWD/localgdbprocess.h \ - $$PWD/remotegdbprocess.h \ - $$PWD/remoteplaingdbadapter.h \ $$PWD/abstractplaingdbadapter.h \ $$PWD/startgdbserverdialog.h @@ -25,8 +23,6 @@ SOURCES += \ $$PWD/remotegdbserveradapter.cpp \ $$PWD/abstractgdbprocess.cpp \ $$PWD/localgdbprocess.cpp \ - $$PWD/remotegdbprocess.cpp \ - $$PWD/remoteplaingdbadapter.cpp \ $$PWD/abstractplaingdbadapter.cpp \ $$PWD/startgdbserverdialog.cpp diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index cf137270aafeb4143271834263e4905b273d2abe..e77ac76070dd17cfea854c6470464f7771ccfbdb 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -34,7 +34,6 @@ #include "localplaingdbadapter.h" #include "termgdbadapter.h" #include "remotegdbserveradapter.h" -#include "remoteplaingdbadapter.h" #include "gdboptionspage.h" @@ -5460,8 +5459,6 @@ DebuggerEngine *createGdbEngine(const DebuggerStartParameters &sp) case StartRemoteProcess: case AttachToRemoteServer: return new GdbRemoteServerEngine(sp); - case StartRemoteGdb: - return new GdbRemotePlainEngine(sp); case AttachExternal: return new GdbAttachEngine(sp); default: diff --git a/src/plugins/debugger/gdb/remotegdbprocess.cpp b/src/plugins/debugger/gdb/remotegdbprocess.cpp deleted file mode 100644 index 123457d4655546840a4d5218048b3ab583501c3f..0000000000000000000000000000000000000000 --- a/src/plugins/debugger/gdb/remotegdbprocess.cpp +++ /dev/null @@ -1,405 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#include "remotegdbprocess.h" - -#include "remoteplaingdbadapter.h" - -#include <utils/qtcassert.h> -#include <utils/qtcprocess.h> -#include <ssh/sshconnectionmanager.h> - -#include <QFileInfo> - -#include <ctype.h> - -using namespace QSsh; -using namespace Utils; - -namespace Debugger { -namespace Internal { - -RemoteGdbProcess::RemoteGdbProcess(const QSsh::SshConnectionParameters &connParams, - GdbRemotePlainEngine *adapter, QObject *parent) - : AbstractGdbProcess(parent), m_connParams(connParams), m_conn(0), - m_state(Inactive), m_adapter(adapter) -{ -} - -QByteArray RemoteGdbProcess::readAllStandardOutput() -{ - QByteArray output = m_gdbOutput; - m_gdbOutput.clear(); - return output; -} - -QByteArray RemoteGdbProcess::readAllStandardError() -{ - QByteArray errorOutput = m_errorOutput; - m_errorOutput.clear(); - return errorOutput; -} - -void RemoteGdbProcess::start(const QString &cmd, const QStringList &args) -{ - Q_UNUSED(cmd); - Q_UNUSED(args); - QTC_ASSERT(m_state == RunningGdb, return); -} - -void RemoteGdbProcess::realStart(const QString &cmd, const QStringList &args, - const QString &executableFilePath) -{ - QTC_ASSERT(m_state == Inactive, return); - setState(Connecting); - - m_command = cmd; - m_cmdArgs = args; - m_appOutputFileName = "app_output_" - + QFileInfo(executableFilePath).fileName().toUtf8(); - m_error.clear(); - m_lastSeqNr.clear(); - m_currentGdbOutput.clear(); - m_gdbOutput.clear(); - m_errorOutput.clear(); - m_inputToSend.clear(); - m_conn = SshConnectionManager::instance().acquireConnection(m_connParams); - connect(m_conn, SIGNAL(error(QSsh::SshError)), this, SLOT(handleConnectionError())); - if (m_conn->state() == SshConnection::Connected) { - handleConnected(); - } else { - connect(m_conn, SIGNAL(connected()), this, SLOT(handleConnected())); - if (m_conn->state() == SshConnection::Unconnected) - m_conn->connectToHost(); - } -} - -void RemoteGdbProcess::handleConnected() -{ - if (m_state == Inactive) - return; - - QTC_ASSERT(m_state == Connecting, return); - setState(CreatingFifo); - - m_fifoCreator = m_conn->createRemoteProcess( "rm -f " - + m_appOutputFileName + " && mkfifo " + m_appOutputFileName); - connect(m_fifoCreator.data(), SIGNAL(closed(int)), this, - SLOT(handleFifoCreationFinished(int))); - m_fifoCreator->start(); -} - -void RemoteGdbProcess::handleConnectionError() -{ - if (m_state != Inactive) - emitErrorExit(tr("Connection failure: %1.").arg(m_conn->errorString())); -} - -void RemoteGdbProcess::handleFifoCreationFinished(int exitStatus) -{ - if (m_state == Inactive) - return; - QTC_ASSERT(m_state == CreatingFifo, return); - - if (exitStatus != QSsh::SshRemoteProcess::NormalExit) { - emitErrorExit(tr("Could not create FIFO.")); - } else { - setState(StartingFifoReader); - m_appOutputReader = m_conn->createRemoteProcess("cat " - + m_appOutputFileName + " && rm -f " + m_appOutputFileName); - connect(m_appOutputReader.data(), SIGNAL(started()), this, - SLOT(handleAppOutputReaderStarted())); - connect(m_appOutputReader.data(), SIGNAL(closed(int)), this, - SLOT(handleAppOutputReaderFinished(int))); - m_appOutputReader->start(); - } -} - -void RemoteGdbProcess::handleAppOutputReaderStarted() -{ - if (m_state == Inactive) - return; - QTC_ASSERT(m_state == StartingFifoReader, return); - setState(StartingGdb); - - connect(m_appOutputReader.data(), SIGNAL(readyReadStandardOutput()), - this, SLOT(handleAppOutput())); - QByteArray cmdLine = "DISPLAY=:0.0 " + m_command.toUtf8() + ' ' - + Utils::QtcProcess::joinArgsUnix(m_cmdArgs).toUtf8() - + " -tty=" + m_appOutputFileName; - if (!m_wd.isEmpty()) - cmdLine.prepend("cd " + Utils::QtcProcess::quoteArgUnix(m_wd).toUtf8() + " && "); - m_gdbProc = m_conn->createRemoteProcess(cmdLine); - connect(m_gdbProc.data(), SIGNAL(started()), this, - SLOT(handleGdbStarted())); - connect(m_gdbProc.data(), SIGNAL(closed(int)), this, - SLOT(handleGdbFinished(int))); - connect(m_gdbProc.data(), SIGNAL(readyReadStandardOutput()), this, - SLOT(handleGdbOutput())); - connect(m_gdbProc.data(), SIGNAL(readyReadStandardError()), this, - SLOT(handleErrOutput())); - m_gdbProc->start(); -} - -void RemoteGdbProcess::handleAppOutputReaderFinished(int exitStatus) -{ - if (exitStatus != QSsh::SshRemoteProcess::NormalExit) - emitErrorExit(tr("Application output reader unexpectedly finished.")); -} - -void RemoteGdbProcess::handleGdbStarted() -{ - if (m_state == Inactive) - return; - QTC_ASSERT(m_state == StartingGdb, return); - setState(RunningGdb); - emit started(); -} - -void RemoteGdbProcess::handleGdbFinished(int exitStatus) -{ - if (m_state == Inactive) - return; - QTC_ASSERT(m_state == RunningGdb, return); - - switch (exitStatus) { - case QSsh::SshRemoteProcess::FailedToStart: - m_error = tr("Remote GDB failed to start."); - setState(Inactive); - emit startFailed(); - break; - case QSsh::SshRemoteProcess::CrashExit: - emitErrorExit(tr("Remote GDB crashed.")); - break; - case QSsh::SshRemoteProcess::NormalExit: - const int exitCode = m_gdbProc->exitCode(); - setState(Inactive); - emit finished(exitCode, QProcess::NormalExit); - break; - } -} - -bool RemoteGdbProcess::waitForStarted() -{ - if (m_state == Inactive) - return false; - QTC_ASSERT(m_state == RunningGdb, return false); - return true; -} - -qint64 RemoteGdbProcess::write(const QByteArray &data) -{ - if (m_state != RunningGdb || !m_inputToSend.isEmpty() - || !m_lastSeqNr.isEmpty()) - m_inputToSend.enqueue(data); - else - sendInput(data); - return data.size(); -} - -void RemoteGdbProcess::kill() -{ - if (m_state == RunningGdb) { - QSsh::SshRemoteProcess::Ptr killProc - = m_conn->createRemoteProcess("pkill -SIGKILL -x gdb"); - killProc->start(); - } else { - setState(Inactive); - } -} - -bool RemoteGdbProcess::interrupt() -{ - return false; -} - -void RemoteGdbProcess::interruptInferior() -{ - QTC_ASSERT(m_state == RunningGdb, return); - - QSsh::SshRemoteProcess::Ptr intProc - = m_conn->createRemoteProcess("pkill -x -SIGINT gdb"); - intProc->start(); -} - -QProcess::ProcessState RemoteGdbProcess::state() const -{ - switch (m_state) { - case RunningGdb: return QProcess::Running; - case Inactive: return QProcess::NotRunning; - default: return QProcess::Starting; - } -} - -QString RemoteGdbProcess::errorString() const -{ - return m_error; -} - -void RemoteGdbProcess::handleGdbOutput() -{ - if (m_state == Inactive) - return; - QTC_ASSERT(m_state == RunningGdb, return); - - const QByteArray &output = m_gdbProc->readAllStandardOutput(); - // TODO: Carriage return removal still necessary? - m_currentGdbOutput += removeCarriageReturn(output); -#if 0 - qDebug("%s: complete unread output is '%s'", Q_FUNC_INFO, m_currentGdbOutput.data()); -#endif - if (!m_currentGdbOutput.endsWith('\n')) - return; - - if (m_currentGdbOutput.contains(m_lastSeqNr + '^')) - m_lastSeqNr.clear(); - - if (m_lastSeqNr.isEmpty() && !m_inputToSend.isEmpty()) { -#if 0 - qDebug("Sending queued command: %s", m_inputToSend.head().data()); -#endif - sendInput(m_inputToSend.dequeue()); - } - - if (!m_currentGdbOutput.isEmpty()) { - const int startPos - = m_gdbOutput.isEmpty() ? findAnchor(m_currentGdbOutput) : 0; - if (startPos != -1) { - m_gdbOutput += m_currentGdbOutput.mid(startPos); - m_currentGdbOutput.clear(); - emit readyReadStandardOutput(); - } - } -} - -QProcessEnvironment RemoteGdbProcess::processEnvironment() const -{ - return QProcessEnvironment(); // TODO: Provide actual environment. -} - -void RemoteGdbProcess::setProcessEnvironment(const QProcessEnvironment & /* env */) -{ - // TODO: Do something. (if remote process exists: set, otherwise queue) -} - -void RemoteGdbProcess::setEnvironment(const QStringList & /* env */) -{ - // TODO: Do something. -} - -void RemoteGdbProcess::setWorkingDirectory(const QString &dir) -{ - m_wd = dir; -} - -int RemoteGdbProcess::findAnchor(const QByteArray &data) const -{ - for (int pos = 0; pos < data.count(); ++pos) { - const char c = data.at(pos); - if (isdigit(c) || c == '*' || c == '+' || c == '=' || c == '~' - || c == '@' || c == '&' || c == '^') - return pos; - } - return -1; -} - -void RemoteGdbProcess::sendInput(const QByteArray &data) -{ - QTC_ASSERT(m_state == RunningGdb, return); - - int pos; - for (pos = 0; pos < data.size(); ++pos) - if (!isdigit(data.at(pos))) - break; - m_lastSeqNr = data.left(pos); - m_gdbProc->write(data); -} - -void RemoteGdbProcess::handleAppOutput() -{ - if (m_state == RunningGdb) - m_adapter->handleApplicationOutput(m_appOutputReader->readAllStandardOutput()); -} - -void RemoteGdbProcess::handleErrOutput() -{ - if (m_state == RunningGdb) { - m_errorOutput += m_gdbProc->readAllStandardError(); - emit readyReadStandardError(); - } -} - -QByteArray RemoteGdbProcess::removeCarriageReturn(const QByteArray &data) -{ - QByteArray output; - for (int i = 0; i < data.size(); ++i) { - const char c = data.at(i); - if (c != '\r') - output += c; - } - return output; -} - -void RemoteGdbProcess::emitErrorExit(const QString &error) -{ - if (m_error.isEmpty()) { - m_error = error; - setState(Inactive); - emit finished(-1, QProcess::CrashExit); - } -} - -void RemoteGdbProcess::setState(State newState) -{ - if (m_state == newState) - return; - m_state = newState; - if (m_state == Inactive) { - if (m_gdbProc) { - disconnect(m_gdbProc.data(), 0, this, 0); - m_gdbProc = QSsh::SshRemoteProcess::Ptr(); - } - if (m_appOutputReader) { - disconnect(m_appOutputReader.data(), 0, this, 0); - m_appOutputReader = QSsh::SshRemoteProcess::Ptr(); - } - if (m_fifoCreator) { - disconnect(m_fifoCreator.data(), 0, this, 0); - m_fifoCreator = QSsh::SshRemoteProcess::Ptr(); - } - disconnect(m_conn, 0, this, 0); - SshConnectionManager::instance().releaseConnection(m_conn); - m_conn = 0; - } -} - -const QByteArray RemoteGdbProcess::CtrlC = QByteArray(1, 0x3); - -} // namespace Internal -} // namespace Debugger diff --git a/src/plugins/debugger/gdb/remotegdbprocess.h b/src/plugins/debugger/gdb/remotegdbprocess.h deleted file mode 100644 index cafd3664971831704df97215c40be02eaf500cfd..0000000000000000000000000000000000000000 --- a/src/plugins/debugger/gdb/remotegdbprocess.h +++ /dev/null @@ -1,128 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#ifndef REMOTEGDBPROCESS_H -#define REMOTEGDBPROCESS_H - -#include "abstractgdbprocess.h" - -#include <ssh/sshconnection.h> -#include <ssh/sshremoteprocess.h> - -#include <QQueue> - -namespace Debugger { -namespace Internal { - -class GdbRemotePlainEngine; - -class RemoteGdbProcess : public AbstractGdbProcess -{ - Q_OBJECT -public: - RemoteGdbProcess(const QSsh::SshConnectionParameters &server, - GdbRemotePlainEngine *adapter, QObject *parent = 0); - - virtual QByteArray readAllStandardOutput(); - virtual QByteArray readAllStandardError(); - - virtual void start(const QString &cmd, const QStringList &args); - virtual bool waitForStarted(); - virtual qint64 write(const QByteArray &data); - virtual void kill(); - virtual bool interrupt(); - - virtual QProcess::ProcessState state() const; - virtual QString errorString() const; - - virtual QProcessEnvironment processEnvironment() const; - virtual void setProcessEnvironment(const QProcessEnvironment &env); - virtual void setEnvironment(const QStringList &env); - virtual void setWorkingDirectory(const QString &dir); - - void interruptInferior(); - void realStart(const QString &cmd, const QStringList &args, - const QString &executableFilePath); - - static const QByteArray CtrlC; - -signals: - void started(); - void startFailed(); - -private slots: - void handleConnected(); - void handleConnectionError(); - void handleFifoCreationFinished(int exitStatus); - void handleAppOutputReaderStarted(); - void handleAppOutputReaderFinished(int exitStatus); - void handleGdbStarted(); - void handleGdbFinished(int exitStatus); - void handleGdbOutput(); - void handleAppOutput(); - void handleErrOutput(); - -private: - enum State { - Inactive, Connecting, CreatingFifo, StartingFifoReader, - StartingGdb, RunningGdb - }; - - static QByteArray readerCmdLine(const QByteArray &file); - - int findAnchor(const QByteArray &data) const; - void sendInput(const QByteArray &data); - QByteArray removeCarriageReturn(const QByteArray &data); - void emitErrorExit(const QString &error); - void setState(State newState); - - QSsh::SshConnectionParameters m_connParams; - QSsh::SshConnection *m_conn; - QSsh::SshRemoteProcess::Ptr m_gdbProc; - QSsh::SshRemoteProcess::Ptr m_appOutputReader; - QSsh::SshRemoteProcess::Ptr m_fifoCreator; - QByteArray m_gdbOutput; - QByteArray m_errorOutput; - QString m_command; - QStringList m_cmdArgs; - QString m_wd; - QQueue<QByteArray> m_inputToSend; - QByteArray m_currentGdbOutput; - QByteArray m_lastSeqNr; - QString m_error; - QByteArray m_appOutputFileName; - State m_state; - - GdbRemotePlainEngine *m_adapter; -}; - -} // namespace Internal -} // namespace Debugger - -#endif // REMOTEGDBPROCESS_H diff --git a/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp b/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp deleted file mode 100644 index eb94b6f8a40e960b1fa2a3b7ec61d9d0d3b2bee7..0000000000000000000000000000000000000000 --- a/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#include "remoteplaingdbadapter.h" -#include <debugger/debuggerstartparameters.h> - -#include <utils/qtcassert.h> - -namespace Debugger { -namespace Internal { - -GdbRemotePlainEngine::GdbRemotePlainEngine(const DebuggerStartParameters &startParameters) - : GdbAbstractPlainEngine(startParameters), - m_gdbProc(startParameters.connParams, this) -{ - connect(&m_gdbProc, SIGNAL(started()), this, SLOT(handleGdbStarted())); - connect(&m_gdbProc, SIGNAL(startFailed()), this, - SLOT(handleGdbStartFailed1())); -} - -void GdbRemotePlainEngine::setupEngine() -{ - QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); - showMessage(QLatin1String("TRYING TO START ADAPTER")); - - if (!startParameters().workingDirectory.isEmpty()) - m_gdbProc.setWorkingDirectory(startParameters().workingDirectory); - if (startParameters().environment.size()) - m_gdbProc.setEnvironment(startParameters().environment.toStringList()); - - notifyEngineRemoteSetupDone(startParameters().connParams.port, startParameters().qmlServerPort); -} - -void GdbRemotePlainEngine::setupInferior() -{ - GdbAbstractPlainEngine::setupInferior(); - postCommand("directory " + startParameters().remoteSourcesDir); -} - -void GdbRemotePlainEngine::interruptInferior2() -{ - m_gdbProc.interruptInferior(); -} - -QByteArray GdbRemotePlainEngine::execFilePath() const -{ - return startParameters().executable.toUtf8(); -} - -QByteArray GdbRemotePlainEngine::toLocalEncoding(const QString &s) const -{ - return s.toUtf8(); -} - -QString GdbRemotePlainEngine::fromLocalEncoding(const QByteArray &b) const -{ - return QString::fromUtf8(b); -} - -void GdbRemotePlainEngine::handleApplicationOutput(const QByteArray &output) -{ - showMessage(QString::fromUtf8(output), AppOutput); -} - -void GdbRemotePlainEngine::shutdownEngine() -{ - notifyAdapterShutdownOk(); -} - -void GdbRemotePlainEngine::notifyEngineRemoteSetupDone(int gdbServerPort, int qmlPort) -{ - Q_UNUSED(gdbServerPort); - QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); - - DebuggerStartParameters &sp = startParameters(); - if (qmlPort != -1) - sp.qmlServerPort = qmlPort; - m_gdbProc.realStart(sp.debuggerCommand, - QStringList() << QLatin1String("-i") << QLatin1String("mi"), - sp.executable); -} - -void GdbRemotePlainEngine::handleGdbStarted() -{ - startGdb(); -} - -void GdbRemotePlainEngine::handleGdbStartFailed1() -{ - handleAdapterStartFailed(m_gdbProc.errorString()); -} - -void GdbRemotePlainEngine::notifyEngineRemoteSetupFailed(const QString &reason) -{ - QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); - handleAdapterStartFailed(reason); -} - -} // namespace Internal -} // namespace Debugger diff --git a/src/plugins/debugger/gdb/remoteplaingdbadapter.h b/src/plugins/debugger/gdb/remoteplaingdbadapter.h deleted file mode 100644 index 92df4945f02b682cbb96708863d04e537200ddda..0000000000000000000000000000000000000000 --- a/src/plugins/debugger/gdb/remoteplaingdbadapter.h +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#ifndef REMOTEPLAINGDBADAPTER_H -#define REMOTEPLAINGDBADAPTER_H - -#include "abstractplaingdbadapter.h" -#include "remotegdbprocess.h" - -namespace Debugger { -namespace Internal { - -class GdbRemotePlainEngine : public GdbAbstractPlainEngine -{ - Q_OBJECT - -public: - friend class RemoteGdbProcess; - explicit GdbRemotePlainEngine(const DebuggerStartParameters &startParameters); - -private slots: - void handleGdbStarted(); - void handleGdbStartFailed1(); - -private: - void setupEngine(); - void setupInferior(); - void interruptInferior2(); - void shutdownEngine(); - void notifyEngineRemoteSetupDone(int gdbServerPort, int qmlPort); - void notifyEngineRemoteSetupFailed(const QString &reason); - AbstractGdbProcess *gdbProc() { return &m_gdbProc; } - DumperHandling dumperHandling() const { return DumperLoadedByGdbPreload; } - - QByteArray execFilePath() const; - QByteArray toLocalEncoding(const QString &s) const; - QString fromLocalEncoding(const QByteArray &b) const; - void handleApplicationOutput(const QByteArray &output); - - RemoteGdbProcess m_gdbProc; -}; - -} // namespace Internal -} // namespace Debugger - -#endif // REMOTEPLAINGDBADAPTER_H