summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/gdb/remotegdbprocess.cpp
diff options
context:
space:
mode:
authorck <qt-info@nokia.com>2010-05-10 11:01:56 +0200
committerck <qt-info@nokia.com>2010-05-10 11:02:26 +0200
commitf678fce3a6e966254cfdec76ab4f594930a00c4f (patch)
tree6d3718c955929973940d5187d6f85a24166bc722 /src/plugins/debugger/gdb/remotegdbprocess.cpp
parent642116e4d2e91596f7d82227a510475a0b09b106 (diff)
downloadqt-creator-f678fce3a6e966254cfdec76ab4f594930a00c4f.tar.gz
SSH: Make interface more Qt-ish.
Diffstat (limited to 'src/plugins/debugger/gdb/remotegdbprocess.cpp')
-rw-r--r--src/plugins/debugger/gdb/remotegdbprocess.cpp35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/plugins/debugger/gdb/remotegdbprocess.cpp b/src/plugins/debugger/gdb/remotegdbprocess.cpp
index 580b1d1f7d..6dbc6b2073 100644
--- a/src/plugins/debugger/gdb/remotegdbprocess.cpp
+++ b/src/plugins/debugger/gdb/remotegdbprocess.cpp
@@ -71,12 +71,12 @@ void RemoteGdbProcess::start(const QString &cmd, const QStringList &args)
return;
m_command = cmd;
m_cmdArgs = args;
- connect(m_gdbConn.data(), SIGNAL(remoteOutput(QByteArray)),
- this, SLOT(handleGdbOutput(QByteArray)));
- connect(m_appOutputConn.data(), SIGNAL(remoteOutput(QByteArray)),
- this, SLOT(handleAppOutput(QByteArray)));
- connect(m_errOutputConn.data(), SIGNAL(remoteOutput(QByteArray)),
- this, SLOT(handleErrOutput(QByteArray)));
+ connect(m_gdbConn.data(), SIGNAL(remoteOutputAvailable()),
+ this, SLOT(handleGdbOutput()));
+ connect(m_appOutputConn.data(), SIGNAL(remoteOutputAvailable()),
+ this, SLOT(handleAppOutput()));
+ connect(m_errOutputConn.data(), SIGNAL(remoteOutputAvailable()),
+ this, SLOT(handleErrOutput()));
m_gdbConn->start();
m_errOutputConn->start();
m_appOutputConn->start();
@@ -130,7 +130,7 @@ QString RemoteGdbProcess::errorString() const
return m_gdbConn ? m_gdbConn->error() : QString();
}
-void RemoteGdbProcess::handleGdbOutput(const QByteArray &output)
+void RemoteGdbProcess::handleGdbOutput()
{
#if 0
qDebug("%s: output is '%s'", Q_FUNC_INFO, output.data());
@@ -139,7 +139,8 @@ void RemoteGdbProcess::handleGdbOutput(const QByteArray &output)
if (m_gdbState == CmdNotYetSent)
return;
- m_currentGdbOutput += removeCarriageReturn(output);
+ m_currentGdbOutput
+ += removeCarriageReturn(m_gdbConn->waitForRemoteOutput(0));
if (!m_currentGdbOutput.endsWith('\n'))
return;
@@ -217,15 +218,17 @@ qint64 RemoteGdbProcess::sendInput(const QByteArray &data)
return m_gdbConn->sendInput(data) ? data.size() : 0;
}
-void RemoteGdbProcess::handleAppOutput(const QByteArray &output)
+void RemoteGdbProcess::handleAppOutput()
{
+ const QByteArray output = m_appOutputConn->waitForRemoteOutput(0);
if (!handleAppOrErrOutput(m_appOutputConn, m_appOutputReaderState,
m_initialAppOutput, AppOutputFile, output))
m_adapter->handleApplicationOutput(output);
}
-void RemoteGdbProcess::handleErrOutput(const QByteArray &output)
+void RemoteGdbProcess::handleErrOutput()
{
+ const QByteArray output = m_errOutputConn->waitForRemoteOutput(0);
if (!handleAppOrErrOutput(m_errOutputConn, m_errOutputReaderState,
m_initialErrOutput, ErrOutputFile, output)) {
m_errorOutput += output;
@@ -277,14 +280,14 @@ void RemoteGdbProcess::startGdb()
void RemoteGdbProcess::stopReaders()
{
if (m_appOutputConn) {
- disconnect(m_appOutputConn.data(), SIGNAL(remoteOutput(QByteArray)),
- this, SLOT(handleAppOutput(QByteArray)));
+ disconnect(m_appOutputConn.data(), SIGNAL(remoteOutputAvailable()),
+ this, SLOT(handleAppOutput()));
m_appOutputConn->sendInput(CtrlC);
m_appOutputConn->quit();
}
if (m_errOutputConn) {
- disconnect(m_errOutputConn.data(), SIGNAL(remoteOutput(QByteArray)),
- this, SLOT(handleErrOutput(QByteArray)));
+ disconnect(m_errOutputConn.data(), SIGNAL(remoteOutputAvailable()),
+ this, SLOT(handleErrOutput()));
m_errOutputConn->sendInput(CtrlC);
m_errOutputConn->quit();
}
@@ -316,8 +319,8 @@ void RemoteGdbProcess::checkForGdbExit(QByteArray &output)
const QByteArray exitString("^exit");
const int exitPos = output.indexOf(exitString);
if (exitPos != -1) {
- disconnect(m_gdbConn.data(), SIGNAL(remoteOutput(QByteArray)),
- this, SLOT(handleGdbOutput(QByteArray)));
+ disconnect(m_gdbConn.data(), SIGNAL(remoteOutputAvailable()),
+ this, SLOT(handleGdbOutput()));
output.remove(exitPos + exitString.size(), output.size());
stopReaders();
emit finished(0, QProcess::NormalExit);