aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/debugger/gdb/remotegdbserveradapter.cpp')
-rw-r--r--src/plugins/debugger/gdb/remotegdbserveradapter.cpp16
1 files changed, 10 insertions, 6 deletions
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;