Debugger: Merge two remote setup communication paths

Success and failure paths are very similar.

Change-Id: Iebf218f64401884c014f1f7745d504183018addd
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
hjk
2014-09-18 19:21:27 +02:00
parent ea6514b235
commit e5e8693148
16 changed files with 160 additions and 126 deletions

View File

@@ -153,10 +153,14 @@ void GdbRemoteServerEngine::readUploadStandardError()
void GdbRemoteServerEngine::uploadProcFinished()
{
if (m_uploadProc.exitStatus() == QProcess::NormalExit
&& m_uploadProc.exitCode() == 0)
&& m_uploadProc.exitCode() == 0) {
startGdb();
else
notifyEngineRemoteSetupFailed(m_uploadProc.errorString());
} else {
RemoteSetupResult result;
result.success = false;
result.reason = m_uploadProc.errorString();
notifyEngineRemoteSetupFinished(result);
}
}
void GdbRemoteServerEngine::setupInferior()
@@ -475,24 +479,29 @@ void GdbRemoteServerEngine::notifyEngineRemoteServerRunning
startGdb();
}
void GdbRemoteServerEngine::notifyEngineRemoteSetupDone(int gdbServerPort, int qmlPort)
void GdbRemoteServerEngine::notifyEngineRemoteSetupFinished(const RemoteSetupResult &result)
{
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
DebuggerEngine::notifyEngineRemoteSetupDone(gdbServerPort, qmlPort);
DebuggerEngine::notifyEngineRemoteSetupFinished(result);
if (!result.success) {
handleAdapterStartFailed(result.reason);
return;
}
DebuggerStartParameters &params = isMasterEngine()
? startParameters() : masterEngine()->startParameters();
if (gdbServerPort != -1) {
if (result.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));
QString::number(result.gdbServerPort));
}
}
if (qmlPort != -1) {
params.qmlServerPort = qmlPort;
params.processArgs.replace(_("%qml_port%"), QString::number(qmlPort));
if (result.qmlServerPort != -1) {
params.qmlServerPort = result.qmlServerPort;
params.processArgs.replace(_("%qml_port%"), QString::number(result.qmlServerPort));
}
// TODO: Aren't these redundant?
@@ -503,12 +512,5 @@ void GdbRemoteServerEngine::notifyEngineRemoteSetupDone(int gdbServerPort, int q
startGdb();
}
void GdbRemoteServerEngine::notifyEngineRemoteSetupFailed(const QString &reason)
{
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
DebuggerEngine::notifyEngineRemoteSetupFailed(reason);
handleAdapterStartFailed(reason);
}
} // namespace Internal
} // namespace Debugger