RemoteLinux: Fix mixed debugging.

The QML part was broken due to recent changes relating to gdbserver
"multi" mode.

Task-number: QTCREATORBUG-12928
Change-Id: Ia806f0cbfedd6961138f7cd89a0387bd851ff83e
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
Christian Kandeler
2014-09-01 16:06:29 +02:00
committed by hjk
parent 2a6491233c
commit e8305e3ed2
2 changed files with 25 additions and 18 deletions

View File

@@ -480,21 +480,27 @@ void GdbRemoteServerEngine::notifyEngineRemoteSetupDone(int gdbServerPort, int q
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
DebuggerEngine::notifyEngineRemoteSetupDone(gdbServerPort, qmlPort);
if (m_isMulti) {
// Has been done in notifyEngineRemoteServerRunning
} else {
if (qmlPort != -1)
startParameters().qmlServerPort = qmlPort;
if (gdbServerPort != -1) {
QString &rc = startParameters().remoteChannel;
const int sepIndex = rc.lastIndexOf(QLatin1Char(':'));
if (sepIndex != -1) {
rc.replace(sepIndex + 1, rc.count() - sepIndex - 1,
QString::number(gdbServerPort));
}
DebuggerStartParameters &params = isMasterEngine()
? startParameters() : masterEngine()->startParameters();
if (gdbServerPort != -1) {
QString &rc = params.remoteChannel;
const int sepIndex = rc.lastIndexOf(QLatin1Char(':'));
if (sepIndex != -1) {
rc.replace(sepIndex + 1, rc.count() - sepIndex - 1,
QString::number(gdbServerPort));
}
startGdb();
}
if (qmlPort != -1) {
params.qmlServerPort = qmlPort;
params.processArgs.replace(_("%qml_port%"), QString::number(qmlPort));
}
// TODO: Aren't these redundant?
m_isMulti = params.multiProcess;
m_targetPid = -1;
m_serverChannel = params.remoteChannel.toLatin1();
startGdb();
}
void GdbRemoteServerEngine::notifyEngineRemoteSetupFailed(const QString &reason)