forked from qt-creator/qt-creator
AndroidRunner: Handle incomplete lines better
Task-number: QTCREATORBUG-11472 Change-Id: If2479d3ccb85857a8775894b1f4088702578ecba Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
@@ -358,11 +358,19 @@ void AndroidRunner::logcatReadStandardError()
|
|||||||
|
|
||||||
void AndroidRunner::logcatReadStandardOutput()
|
void AndroidRunner::logcatReadStandardOutput()
|
||||||
{
|
{
|
||||||
m_logcat += m_adbLogcatProcess.readAllStandardOutput();
|
QList<QByteArray> lines = m_adbLogcatProcess.readAllStandardOutput().split('\n');
|
||||||
bool keepLastLine = m_logcat.endsWith('\n');
|
// lines always contains at least one item
|
||||||
QByteArray line;
|
lines[0].prepend(m_logcat);
|
||||||
|
if (!lines.last().endsWith('\n')) {
|
||||||
|
// incomplete line
|
||||||
|
m_logcat = lines.last();
|
||||||
|
lines.removeLast();
|
||||||
|
} else {
|
||||||
|
m_logcat.clear();
|
||||||
|
}
|
||||||
|
|
||||||
QByteArray pid(QString::fromLatin1("%1):").arg(m_processPID).toLatin1());
|
QByteArray pid(QString::fromLatin1("%1):").arg(m_processPID).toLatin1());
|
||||||
foreach (line, m_logcat.split('\n')) {
|
foreach (QByteArray line, lines) {
|
||||||
if (!line.contains(pid))
|
if (!line.contains(pid))
|
||||||
continue;
|
continue;
|
||||||
if (line.endsWith('\r'))
|
if (line.endsWith('\r'))
|
||||||
@@ -376,8 +384,6 @@ void AndroidRunner::logcatReadStandardOutput()
|
|||||||
emit remoteOutput(line);
|
emit remoteOutput(line);
|
||||||
|
|
||||||
}
|
}
|
||||||
if (keepLastLine)
|
|
||||||
m_logcat = line;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidRunner::adbKill(qint64 pid)
|
void AndroidRunner::adbKill(qint64 pid)
|
||||||
|
Reference in New Issue
Block a user