From 079fc49e911549713904d6428852e762f3fa1df0 Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Mon, 23 Jan 2012 14:57:51 +0100 Subject: [PATCH] RemoteGdb: Fix setup for attaching via dialog Fix regression introduced in 9e8f935a while at the same time decoupling the 'useServerStartScript' setting from whether the engine uses requestRemoteSetup, or not. Task-number: QTCREATORBUG-6841 Change-Id: I0850ec60e0f45ac66ba6736bcb9f75fdf73c1d23 Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com> --- src/plugins/debugger/debuggerstartparameters.h | 2 ++ .../debugger/gdb/remotegdbserveradapter.cpp | 5 ++++- .../debugger/gdb/remoteplaingdbadapter.cpp | 15 ++++++++++----- src/plugins/debugger/qml/qmlengine.cpp | 3 +-- .../qt-s60/s60devicedebugruncontrol.cpp | 6 ++++-- .../remotelinux/remotelinuxdebugsupport.cpp | 2 +- 6 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/plugins/debugger/debuggerstartparameters.h b/src/plugins/debugger/debuggerstartparameters.h index ed3f9c4f2f5..220229e4abe 100644 --- a/src/plugins/debugger/debuggerstartparameters.h +++ b/src/plugins/debugger/debuggerstartparameters.h @@ -69,6 +69,7 @@ public: qmlServerPort(ProjectExplorer::Constants::QML_DEFAULT_DEBUG_SERVER_PORT), useServerStartScript(false), connParams(Utils::SshConnectionParameters::NoProxy), + requestRemoteSetup(false), startMode(NoStartMode), executableUid(0), communicationChannel(CommunicationChannelTcpIp), @@ -115,6 +116,7 @@ public: QString remoteMountPoint; QString localMountDir; Utils::SshConnectionParameters connParams; + bool requestRemoteSetup; QString debuggerCommand; ProjectExplorer::Abi toolChainAbi; diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp index 3b7bf8fb106..5c322c62c38 100644 --- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp @@ -95,7 +95,10 @@ void RemoteGdbServerAdapter::startAdapter() m_uploadProc.waitForStarted(); } } - m_engine->requestRemoteSetup(); + if (startParameters().requestRemoteSetup) + m_engine->requestRemoteSetup(); + else + handleSetupDone(); } void RemoteGdbServerAdapter::uploadProcError(QProcess::ProcessError error) diff --git a/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp b/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp index c332a8ec3b9..bd09d2d4e20 100644 --- a/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp +++ b/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp @@ -54,7 +54,16 @@ void RemotePlainGdbAdapter::startAdapter() { QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); showMessage(QLatin1String("TRYING TO START ADAPTER")); - m_engine->requestRemoteSetup(); + + if (!startParameters().workingDirectory.isEmpty()) + m_gdbProc.setWorkingDirectory(startParameters().workingDirectory); + if (startParameters().environment.size()) + m_gdbProc.setEnvironment(startParameters().environment.toStringList()); + + if (startParameters().requestRemoteSetup) + m_engine->requestRemoteSetup(); + else + handleRemoteSetupDone(startParameters().connParams.port, startParameters().qmlServerPort); } void RemotePlainGdbAdapter::setupInferior() @@ -106,10 +115,6 @@ void RemotePlainGdbAdapter::handleRemoteSetupDone(int gdbServerPort, int qmlPort if (qmlPort != -1) startParameters().qmlServerPort = qmlPort; - if (!startParameters().workingDirectory.isEmpty()) - m_gdbProc.setWorkingDirectory(startParameters().workingDirectory); - if (startParameters().environment.size()) - m_gdbProc.setEnvironment(startParameters().environment.toStringList()); m_gdbProc.realStart(m_engine->startParameters().debuggerCommand, QStringList() << QLatin1String("-i") << QLatin1String("mi"), m_engine->startParameters().executable); diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index f66847f8bc4..d402fcbf04a 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -450,8 +450,7 @@ void QmlEngine::shutdownEngine() void QmlEngine::setupEngine() { - if (startParameters().startMode == AttachToQmlPort - || startParameters().startMode == AttachToRemoteServer) { + if (startParameters().requestRemoteSetup) { // we need to get the port first emit requestRemoteSetup(); } else { diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp index f0200e43be5..1160ae9bd7a 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp @@ -84,10 +84,12 @@ static Debugger::DebuggerStartParameters s60DebuggerStartParams(const S60DeviceR sp.remoteChannel = activeDeployConf->serialPortName(); sp.processArgs = rc->commandLineArguments(); - if (rc->useQmlDebugger() && !rc->useCppDebugger()) + if (rc->useQmlDebugger() && !rc->useCppDebugger()) { + sp.requestRemoteSetup = true; sp.startMode = Debugger::AttachToRemoteServer; - else + } else { sp.startMode = Debugger::StartInternal; + } sp.toolChainAbi = rc->abi(); sp.executable = debugFileName; diff --git a/src/plugins/remotelinux/remotelinuxdebugsupport.cpp b/src/plugins/remotelinux/remotelinuxdebugsupport.cpp index 2135ad9ccad..35314964fa2 100644 --- a/src/plugins/remotelinux/remotelinuxdebugsupport.cpp +++ b/src/plugins/remotelinux/remotelinuxdebugsupport.cpp @@ -109,7 +109,7 @@ DebuggerStartParameters AbstractRemoteLinuxDebugSupport::startParameters(const R params.executable = runConfig->localExecutableFilePath(); params.debuggerCommand = runConfig->gdbCmd(); params.remoteChannel = devConf->sshParameters().host + QLatin1String(":-1"); - params.useServerStartScript = true; + params.requestRemoteSetup = true; // TODO: This functionality should be inside the debugger. const ProjectExplorer::Abi &abi = runConfig->target() -- GitLab