diff options
author | Vikas Pachdha <vikas.pachdha@qt.io> | 2017-08-15 13:38:09 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2017-08-15 14:40:25 +0000 |
commit | cdffb378fd41438e3c43b17f82bb090c7d58f54e (patch) | |
tree | 7f0004b3a1a624bff1d4591aabb2174f266fdfbe | |
parent | a194b107d6bced6ceebde548d2f492988b447ab2 (diff) |
Android: Fix QML debuggingv4.4.0-rc1
Specify the qml server address and use correct default loop back
address in qmlengine
Change-Id: I9b77cb3385041bbe79900e7f7a188ca26124bacc
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
-rw-r--r-- | src/plugins/android/androiddebugsupport.cpp | 1 | ||||
-rw-r--r-- | src/plugins/android/androidrunner.cpp | 11 | ||||
-rw-r--r-- | src/plugins/android/androidrunner.h | 5 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmlengine.cpp | 2 |
4 files changed, 14 insertions, 5 deletions
diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp index 92b80cf2cf7..5bc850fe643 100644 --- a/src/plugins/android/androiddebugsupport.cpp +++ b/src/plugins/android/androiddebugsupport.cpp @@ -133,6 +133,7 @@ void AndroidDebugSupport::start() .appendPath(toNdkArch(AndroidManager::targetArch(target))).toString(); } if (isQmlDebugging()) { + params.qmlServer.host = m_runner->qmlServerHost(); params.qmlServer.port = m_runner->qmlServerPort(); //TODO: Not sure if these are the right paths. QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(kit); diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index 8dcd1333695..04d87284af8 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -226,7 +226,8 @@ public: Utils::Port localGdbServerPort() const { return m_localGdbServerPort; } signals: - void remoteProcessStarted(Utils::Port gdbServerPort, Utils::Port qmlServerPort, int pid); + void remoteProcessStarted(Utils::Port gdbServerPort, Utils::Port qmlServerPort, + QString qmlServerHost, int pid); void remoteProcessFinished(const QString &errString = QString()); void remoteOutput(const QString &output); @@ -257,6 +258,7 @@ private: bool m_useCppDebugger = false; QmlDebug::QmlDebugServicesPreset m_qmlDebugServices; Utils::Port m_localGdbServerPort; // Local end of forwarded debug socket. + QString m_qmlServerHost; Utils::Port m_qmlPort; QString m_pingFile; QString m_pongFile; @@ -295,6 +297,7 @@ AndroidRunnerWorker::AndroidRunnerWorker(RunControl *runControl, const AndroidRu QTC_ASSERT(server.listen(QHostAddress::LocalHost) || server.listen(QHostAddress::LocalHostIPv6), qDebug() << tr("No free ports available on host for QML debugging.")); + m_qmlServerHost = server.serverAddress().toString(); m_qmlPort = Utils::Port(server.serverPort()); } else { m_qmlPort = Utils::Port(); @@ -638,7 +641,7 @@ void AndroidRunnerWorker::onProcessIdChanged(qint64 pid) } else { // In debugging cases this will be funneled to the engine to actually start // and attach gdb. Afterwards this ends up in handleRemoteDebuggerRunning() below. - emit remoteProcessStarted(m_localGdbServerPort, m_qmlPort, m_processPID); + emit remoteProcessStarted(m_localGdbServerPort, m_qmlPort, m_qmlServerHost, m_processPID); logcatReadStandardOutput(); QTC_ASSERT(!m_psIsAlive, /**/); m_psIsAlive.reset(new QProcess); @@ -782,10 +785,12 @@ void AndroidRunner::remoteErrorOutput(const QString &output) m_outputParser.processOutput(output); } -void AndroidRunner::handleRemoteProcessStarted(Utils::Port gdbServerPort, Utils::Port qmlServerPort, int pid) +void AndroidRunner::handleRemoteProcessStarted(Utils::Port gdbServerPort, Utils::Port qmlServerPort, + QString qmlServerHost, int pid) { m_pid = ProcessHandle(pid); m_gdbServerPort = gdbServerPort; + m_qmlServerHost = qmlServerHost; m_qmlServerPort = qmlServerPort; reportStarted(); } diff --git a/src/plugins/android/androidrunner.h b/src/plugins/android/androidrunner.h index 2efd52299cf..6215cc49a58 100644 --- a/src/plugins/android/androidrunner.h +++ b/src/plugins/android/androidrunner.h @@ -57,6 +57,7 @@ public: const AndroidRunnable &runnable() const { return m_androidRunnable; } Utils::Port gdbServerPort() const { return m_gdbServerPort; } + QString qmlServerHost() const { return m_qmlServerHost; } Utils::Port qmlServerPort() const { return m_qmlServerPort; } Utils::ProcessHandle pid() const { return m_pid; } @@ -76,7 +77,8 @@ private: void remoteOutput(const QString &output); void remoteErrorOutput(const QString &output); void gotRemoteOutput(const QString &output); - void handleRemoteProcessStarted(Utils::Port gdbServerPort, Utils::Port qmlServerPort, int pid); + void handleRemoteProcessStarted(Utils::Port gdbServerPort, Utils::Port qmlServerPort, + QString qmlServerHost, int pid); void handleRemoteProcessFinished(const QString &errString = QString()); void checkAVD(); void launchAVD(); @@ -88,6 +90,7 @@ private: QScopedPointer<AndroidRunnerWorker> m_worker; QPointer<ProjectExplorer::Target> m_target; Utils::Port m_gdbServerPort; + QString m_qmlServerHost; Utils::Port m_qmlServerPort; Utils::ProcessHandle m_pid; QmlDebug::QmlOutputParser m_outputParser; diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index 10e6d4f3b21..4dc8280851f 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -427,7 +427,7 @@ void QmlEngine::beginConnection(Utils::Port port) QString host = runParameters().qmlServer.host; // Use localhost as default if (host.isEmpty()) - host = "localhost"; + host = QHostAddress(QHostAddress::LocalHost).toString(); /* * Let plugin-specific code override the port printed by the application. This is necessary |