diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 95049cb16f8..97746ea22f0 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -1364,7 +1364,6 @@ void DebuggerPluginPrivate::attachToRemoteServer() rp.startMode = AttachToRemoteServer; if (StartApplicationDialog::run(ICore::dialogParent(), &rp, &kit)) { rp.closeMode = KillAtClose; - rp.serverStartScript.clear(); createAndScheduleRun(rp, kit); } } diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp index 95f99d136a1..0f3f4f234a2 100644 --- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp @@ -78,24 +78,27 @@ void GdbRemoteServerEngine::setupEngine() { QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); showMessage(_("TRYING TO START ADAPTER")); - if (!runParameters().serverStartScript.isEmpty()) { + QString serverStartScript = runParameters().serverStartScript; + if (!serverStartScript.isEmpty()) { // Provide script information about the environment QString arglist; - QtcProcess::addArg(&arglist, runParameters().serverStartScript); + QtcProcess::addArg(&arglist, serverStartScript); QtcProcess::addArg(&arglist, runParameters().executable); QtcProcess::addArg(&arglist, runParameters().remoteChannel); - m_uploadProc.start(_("/bin/sh ") + arglist); + m_uploadProc.start(arglist); m_uploadProc.waitForStarted(); } if (!runParameters().workingDirectory.isEmpty()) m_gdbProc.setWorkingDirectory(runParameters().workingDirectory); - if (runParameters().remoteSetupNeeded) + if (runParameters().remoteSetupNeeded) { notifyEngineRequestRemoteSetup(); - else + } else { + m_startAttempted = true; startGdb(); + } } void GdbRemoteServerEngine::uploadProcError(QProcess::ProcessError error) @@ -151,7 +154,8 @@ void GdbRemoteServerEngine::readUploadStandardError() void GdbRemoteServerEngine::uploadProcFinished() { if (m_uploadProc.exitStatus() == QProcess::NormalExit && m_uploadProc.exitCode() == 0) { - startGdb(); + if (!m_startAttempted) + startGdb(); } else { RemoteSetupResult result; result.success = false;