Debugger: Fix use of server start script

... when using Debug->Start->Attach to Running Debug Server

Task-number: QTCREATORBUG-14747
Task-number: QTCREATORBUG-7459
Change-Id: I98c3d4f2d565d972369f2716ff2b72b4d3d04b2b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
hjk
2015-07-17 13:56:37 +02:00
parent 6736331421
commit e5f76153b9
2 changed files with 10 additions and 7 deletions

View File

@@ -1364,7 +1364,6 @@ void DebuggerPluginPrivate::attachToRemoteServer()
rp.startMode = AttachToRemoteServer; rp.startMode = AttachToRemoteServer;
if (StartApplicationDialog::run(ICore::dialogParent(), &rp, &kit)) { if (StartApplicationDialog::run(ICore::dialogParent(), &rp, &kit)) {
rp.closeMode = KillAtClose; rp.closeMode = KillAtClose;
rp.serverStartScript.clear();
createAndScheduleRun(rp, kit); createAndScheduleRun(rp, kit);
} }
} }

View File

@@ -78,24 +78,27 @@ void GdbRemoteServerEngine::setupEngine()
{ {
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
showMessage(_("TRYING TO START ADAPTER")); showMessage(_("TRYING TO START ADAPTER"));
if (!runParameters().serverStartScript.isEmpty()) { QString serverStartScript = runParameters().serverStartScript;
if (!serverStartScript.isEmpty()) {
// Provide script information about the environment // Provide script information about the environment
QString arglist; QString arglist;
QtcProcess::addArg(&arglist, runParameters().serverStartScript); QtcProcess::addArg(&arglist, serverStartScript);
QtcProcess::addArg(&arglist, runParameters().executable); QtcProcess::addArg(&arglist, runParameters().executable);
QtcProcess::addArg(&arglist, runParameters().remoteChannel); QtcProcess::addArg(&arglist, runParameters().remoteChannel);
m_uploadProc.start(_("/bin/sh ") + arglist); m_uploadProc.start(arglist);
m_uploadProc.waitForStarted(); m_uploadProc.waitForStarted();
} }
if (!runParameters().workingDirectory.isEmpty()) if (!runParameters().workingDirectory.isEmpty())
m_gdbProc.setWorkingDirectory(runParameters().workingDirectory); m_gdbProc.setWorkingDirectory(runParameters().workingDirectory);
if (runParameters().remoteSetupNeeded) if (runParameters().remoteSetupNeeded) {
notifyEngineRequestRemoteSetup(); notifyEngineRequestRemoteSetup();
else } else {
m_startAttempted = true;
startGdb(); startGdb();
}
} }
void GdbRemoteServerEngine::uploadProcError(QProcess::ProcessError error) void GdbRemoteServerEngine::uploadProcError(QProcess::ProcessError error)
@@ -151,6 +154,7 @@ void GdbRemoteServerEngine::readUploadStandardError()
void GdbRemoteServerEngine::uploadProcFinished() void GdbRemoteServerEngine::uploadProcFinished()
{ {
if (m_uploadProc.exitStatus() == QProcess::NormalExit && m_uploadProc.exitCode() == 0) { if (m_uploadProc.exitStatus() == QProcess::NormalExit && m_uploadProc.exitCode() == 0) {
if (!m_startAttempted)
startGdb(); startGdb();
} else { } else {
RemoteSetupResult result; RemoteSetupResult result;