summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2017-09-29 09:24:06 +0200
committerhjk <hjk@qt.io>2017-09-29 09:23:32 +0000
commit64d784ec9a78e4b39160c410abde868e6a35b5e8 (patch)
tree53c5bf1898bd30c28a59683d7c0cbf90c618db74
parent2364efc133a9d9adbe61112ec38850b840c4b339 (diff)
downloadqt-creator-64d784ec9a78e4b39160c410abde868e6a35b5e8.tar.gz
Qnx: Fix Qml profiler startup
This essentially replicates the RemoteLinux setup with the additional Slog2Info runner. Verified to work with Qt 5.9.2 on a BD-SL i.MX6Q_Sabre-Lite_Board armle running QNX 6.6.0 2014/02/22-19:07:53EST Task-number: QTCREATORBUG-18954 Change-Id: Iffea289b7c7f25d23472c9e12b5e45c460c93795 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
-rw-r--r--src/plugins/qnx/qnxanalyzesupport.cpp76
-rw-r--r--src/plugins/qnx/qnxanalyzesupport.h6
2 files changed, 32 insertions, 50 deletions
diff --git a/src/plugins/qnx/qnxanalyzesupport.cpp b/src/plugins/qnx/qnxanalyzesupport.cpp
index f5e182a8e3..f42d3ecc56 100644
--- a/src/plugins/qnx/qnxanalyzesupport.cpp
+++ b/src/plugins/qnx/qnxanalyzesupport.cpp
@@ -36,76 +36,54 @@
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
+
#include <qmldebug/qmldebugcommandlinearguments.h>
#include <qmldebug/qmloutputparser.h>
+#include <ssh/sshconnection.h>
+
using namespace ProjectExplorer;
using namespace Utils;
namespace Qnx {
namespace Internal {
-class QnxAnalyzeeRunner : public SimpleTargetRunner
-{
-public:
- QnxAnalyzeeRunner(RunControl *runControl, PortsGatherer *portsGatherer)
- : SimpleTargetRunner(runControl), m_portsGatherer(portsGatherer)
- {
- setDisplayName("QnxAnalyzeeRunner");
- }
-
-private:
- void start() override
- {
- Utils::Port port = m_portsGatherer->findPort();
-
- auto r = runnable().as<StandardRunnable>();
- if (!r.commandLineArguments.isEmpty())
- r.commandLineArguments += ' ';
- r.commandLineArguments +=
- QmlDebug::qmlDebugTcpArguments(QmlDebug::QmlProfilerServices, port);
-
- setRunnable(r);
-
- SimpleTargetRunner::start();
- }
-
- PortsGatherer *m_portsGatherer;
-};
-
-
-// QnxDebugSupport
-
QnxQmlProfilerSupport::QnxQmlProfilerSupport(RunControl *runControl)
- : RunWorker(runControl)
+ : SimpleTargetRunner(runControl)
{
- runControl->createWorker(runControl->runMode());
-
- setDisplayName("QnxAnalyzeSupport");
+ setDisplayName("QnxQmlProfilerSupport");
appendMessage(tr("Preparing remote side..."), Utils::LogMessageFormat);
- auto portsGatherer = new PortsGatherer(runControl);
-
- auto debuggeeRunner = new QnxAnalyzeeRunner(runControl, portsGatherer);
- debuggeeRunner->addStartDependency(portsGatherer);
+ m_portsGatherer = new PortsGatherer(runControl);
+ addStartDependency(m_portsGatherer);
auto slog2InfoRunner = new Slog2InfoRunner(runControl);
- slog2InfoRunner->addStartDependency(debuggeeRunner);
-
addStartDependency(slog2InfoRunner);
- // QmlDebug::QmlOutputParser m_outputParser;
- // FIXME: m_outputParser needs to be fed with application output
- // connect(&m_outputParser, &QmlDebug::QmlOutputParser::waitingForConnectionOnPort,
- // this, &QnxAnalyzeSupport::remoteIsRunning);
-
- // m_outputParser.processOutput(msg);
+ m_profiler = runControl->createWorker(runControl->runMode());
+ m_profiler->addStartDependency(this);
+ addStopDependency(m_profiler);
}
void QnxQmlProfilerSupport::start()
{
- // runControl()->notifyRemoteSetupDone(m_qmlPort);
- reportStarted();
+ Port qmlPort = m_portsGatherer->findPort();
+
+ QUrl serverUrl;
+ serverUrl.setHost(device()->sshParameters().host);
+ serverUrl.setPort(qmlPort.number());
+ serverUrl.setScheme("tcp");
+ m_profiler->recordData("QmlServerUrl", serverUrl);
+
+ QString args = QmlDebug::qmlDebugTcpArguments(QmlDebug::QmlProfilerServices, qmlPort);
+ auto r = runnable().as<StandardRunnable>();
+ if (!r.commandLineArguments.isEmpty())
+ r.commandLineArguments.append(' ');
+ r.commandLineArguments += args;
+
+ setRunnable(r);
+
+ SimpleTargetRunner::start();
}
} // namespace Internal
diff --git a/src/plugins/qnx/qnxanalyzesupport.h b/src/plugins/qnx/qnxanalyzesupport.h
index 9fbd11d0fe..415459e3c1 100644
--- a/src/plugins/qnx/qnxanalyzesupport.h
+++ b/src/plugins/qnx/qnxanalyzesupport.h
@@ -25,12 +25,13 @@
#pragma once
+#include <projectexplorer/devicesupport/deviceusedportsgatherer.h>
#include <projectexplorer/runconfiguration.h>
namespace Qnx {
namespace Internal {
-class QnxQmlProfilerSupport : public ProjectExplorer::RunWorker
+class QnxQmlProfilerSupport : public ProjectExplorer::SimpleTargetRunner
{
Q_OBJECT
@@ -39,6 +40,9 @@ public:
private:
void start() override;
+
+ ProjectExplorer::PortsGatherer *m_portsGatherer;
+ ProjectExplorer::RunWorker *m_profiler;
};
} // namespace Internal