diff --git a/src/plugins/qnx/qnxanalyzesupport.cpp b/src/plugins/qnx/qnxanalyzesupport.cpp
index 091693976755fd9ffe81fb970b53ea955a2d0d3d..9f61a6b3ffa743b559e90b38b855f61255af39b8 100644
--- a/src/plugins/qnx/qnxanalyzesupport.cpp
+++ b/src/plugins/qnx/qnxanalyzesupport.cpp
@@ -29,13 +29,21 @@
 
 #include "qnxanalyzesupport.h"
 
+#include "qnxdeviceconfiguration.h"
+#include "qnxrunconfiguration.h"
+#include "slog2inforunner.h"
+
 #include <analyzerbase/analyzerruncontrol.h>
 #include <analyzerbase/analyzerstartparameters.h>
 #include <projectexplorer/devicesupport/deviceapplicationrunner.h>
+#include <projectexplorer/kitinformation.h>
+#include <projectexplorer/target.h>
 
 #include <utils/qtcassert.h>
 #include <utils/qtcprocess.h>
 
+#include <QFileInfo>
+
 using namespace ProjectExplorer;
 
 using namespace Qnx;
@@ -59,6 +67,16 @@ QnxAnalyzeSupport::QnxAnalyzeSupport(QnxRunConfiguration *runConfig,
             SLOT(handleAdapterSetupRequested()));
     connect(&m_outputParser, SIGNAL(waitingForConnectionOnPort(quint16)),
             SLOT(remoteIsRunning()));
+
+    ProjectExplorer::IDevice::ConstPtr dev = ProjectExplorer::DeviceKitInformation::device(runConfig->target()->kit());
+    QnxDeviceConfiguration::ConstPtr qnxDevice = dev.dynamicCast<const QnxDeviceConfiguration>();
+
+    const QString applicationId = QFileInfo(runConfig->remoteExecutableFilePath()).fileName();
+    m_slog2Info = new Slog2InfoRunner(applicationId, qnxDevice, this);
+    connect(m_slog2Info, SIGNAL(output(QString,Utils::OutputFormat)), this, SLOT(showMessage(QString,Utils::OutputFormat)));
+    connect(runner, SIGNAL(remoteProcessStarted()), m_slog2Info, SLOT(start()));
+    if (qnxDevice->qnxVersion() > 0x060500)
+        connect(m_slog2Info, SIGNAL(commandMissing()), this, SLOT(printMissingWarning()));
 }
 
 void QnxAnalyzeSupport::handleAdapterSetupRequested()
@@ -89,13 +107,15 @@ void QnxAnalyzeSupport::startExecution()
 
 void QnxAnalyzeSupport::handleRemoteProcessFinished(bool success)
 {
-    if (m_runControl || state() == Inactive)
+    if (!m_runControl)
         return;
 
     if (!success)
         showMessage(tr("The %1 process closed unexpectedly.").arg(executable()),
                     Utils::NormalMessageFormat);
     m_runControl->notifyRemoteFinished(success);
+
+    m_slog2Info->stop();
 }
 
 void QnxAnalyzeSupport::handleProfilingFinished()
@@ -137,3 +157,8 @@ void QnxAnalyzeSupport::showMessage(const QString &msg, Utils::OutputFormat form
         m_runControl->logApplicationMessage(msg, format);
     m_outputParser.processOutput(msg);
 }
+
+void QnxAnalyzeSupport::printMissingWarning()
+{
+    showMessage(tr("Warning: \"slog2info\" is not found on the device, debug output not available!"), Utils::ErrorMessageFormat);
+}
diff --git a/src/plugins/qnx/qnxanalyzesupport.h b/src/plugins/qnx/qnxanalyzesupport.h
index 4662cfaa993a1d4bf669a90a18bf51c1333ecdd6..197a11a5f2b8b587cf08d57ffa1ad8fe10f3184b 100644
--- a/src/plugins/qnx/qnxanalyzesupport.h
+++ b/src/plugins/qnx/qnxanalyzesupport.h
@@ -42,6 +42,7 @@ namespace Qnx {
 namespace Internal {
 
 class QnxRunConfiguration;
+class Slog2InfoRunner;
 
 class QnxAnalyzeSupport : public QnxAbstractRunSupport
 {
@@ -60,15 +61,19 @@ private slots:
     void handleRemoteOutput(const QByteArray &output);
     void handleError(const QString &error);
 
+    void showMessage(const QString &, Utils::OutputFormat);
+    void printMissingWarning();
+
     void remoteIsRunning();
 
 private:
     void startExecution();
-    void showMessage(const QString &, Utils::OutputFormat);
 
     Analyzer::AnalyzerRunControl *m_runControl;
     QmlDebug::QmlOutputParser m_outputParser;
     int m_qmlPort;
+
+    Slog2InfoRunner *m_slog2Info;
 };
 
 } // namespace Internal
diff --git a/src/plugins/qnx/qnxruncontrolfactory.cpp b/src/plugins/qnx/qnxruncontrolfactory.cpp
index d96066eba3809880817e4fb06fbac5cfc9b9d2b3..b36343bc4f415f7fccf8ac7a27aee865bfc53d2b 100644
--- a/src/plugins/qnx/qnxruncontrolfactory.cpp
+++ b/src/plugins/qnx/qnxruncontrolfactory.cpp
@@ -127,6 +127,7 @@ static AnalyzerStartParameters createAnalyzerStartParameters(const QnxRunConfigu
 
     if (mode == QmlProfilerRunMode)
         params.startMode = StartLocal;
+    params.runMode = mode;
     params.debuggee = runConfig->remoteExecutableFilePath();
     params.debuggeeArgs = runConfig->arguments().join(QLatin1String(" "));
     params.connParams = DeviceKitInformation::device(runConfig->target()->kit())->sshParameters();