diff --git a/src/plugins/remotelinux/remotelinuxanalyzesupport.cpp b/src/plugins/remotelinux/remotelinuxanalyzesupport.cpp index d9a32264459..0d8f4c7f418 100644 --- a/src/plugins/remotelinux/remotelinuxanalyzesupport.cpp +++ b/src/plugins/remotelinux/remotelinuxanalyzesupport.cpp @@ -74,7 +74,7 @@ public: using namespace Internal; -AnalyzerStartParameters RemoteLinuxAnalyzeSupport::startParameters(const AbstractRemoteLinuxRunConfiguration *runConfig, +AnalyzerStartParameters RemoteLinuxAnalyzeSupport::startParameters(const RunConfiguration *runConfig, RunMode runMode) { AnalyzerStartParameters params; @@ -98,6 +98,8 @@ RemoteLinuxAnalyzeSupport::RemoteLinuxAnalyzeSupport(AbstractRemoteLinuxRunConfi SLOT(handleRemoteSetupRequested())); connect(&d->outputParser, &QmlDebug::QmlOutputParser::waitingForConnectionOnPort, this, &RemoteLinuxAnalyzeSupport::remoteIsRunning); + connect(engine, &RunControl::finished, + this, &RemoteLinuxAnalyzeSupport::handleProfilingFinished); } RemoteLinuxAnalyzeSupport::~RemoteLinuxAnalyzeSupport() diff --git a/src/plugins/remotelinux/remotelinuxanalyzesupport.h b/src/plugins/remotelinux/remotelinuxanalyzesupport.h index a0ce2727f60..20ff11d802d 100644 --- a/src/plugins/remotelinux/remotelinuxanalyzesupport.h +++ b/src/plugins/remotelinux/remotelinuxanalyzesupport.h @@ -34,6 +34,8 @@ #include "abstractremotelinuxrunsupport.h" #include +#include + #include namespace Analyzer { @@ -50,7 +52,7 @@ class REMOTELINUX_EXPORT RemoteLinuxAnalyzeSupport : public AbstractRemoteLinuxR { Q_OBJECT public: - static Analyzer::AnalyzerStartParameters startParameters(const AbstractRemoteLinuxRunConfiguration *runConfig, + static Analyzer::AnalyzerStartParameters startParameters(const ProjectExplorer::RunConfiguration *runConfig, ProjectExplorer::RunMode runMode); RemoteLinuxAnalyzeSupport(AbstractRemoteLinuxRunConfiguration *runConfig, diff --git a/src/plugins/remotelinux/remotelinuxruncontrolfactory.cpp b/src/plugins/remotelinux/remotelinuxruncontrolfactory.cpp index f8a2517527a..912147f7f82 100644 --- a/src/plugins/remotelinux/remotelinuxruncontrolfactory.cpp +++ b/src/plugins/remotelinux/remotelinuxruncontrolfactory.cpp @@ -81,18 +81,18 @@ RunControl *RemoteLinuxRunControlFactory::create(RunConfiguration *runConfig, Ru { QTC_ASSERT(canRun(runConfig, mode), return 0); - auto * const rc = qobject_cast(runConfig); - QTC_ASSERT(rc, return 0); switch (mode) { case NormalRunMode: - return new RemoteLinuxRunControl(rc); + return new RemoteLinuxRunControl(runConfig); case DebugRunMode: case DebugRunModeWithBreakOnMain: { - IDevice::ConstPtr dev = DeviceKitInformation::device(rc->target()->kit()); + IDevice::ConstPtr dev = DeviceKitInformation::device(runConfig->target()->kit()); if (!dev) { *errorMessage = tr("Cannot debug: Kit has no device."); return 0; } + auto * const rc = qobject_cast(runConfig); + QTC_ASSERT(rc, return 0); if (rc->portsUsedByDebuggers() > dev->freePorts().count()) { *errorMessage = tr("Cannot debug: Not enough free ports available."); return 0; @@ -106,7 +106,7 @@ RunControl *RemoteLinuxRunControlFactory::create(RunConfiguration *runConfig, Ru DebuggerStartParameters params = LinuxDeviceDebugSupport::startParameters(rc); if (mode == DebugRunModeWithBreakOnMain) params.breakOnMain = true; - params.runConfiguration = rc; + params.runConfiguration = runConfig; DebuggerRunControl * const runControl = DebuggerRunControlFactory::doCreate(params, errorMessage); if (!runControl) @@ -117,11 +117,11 @@ RunControl *RemoteLinuxRunControlFactory::create(RunConfiguration *runConfig, Ru return runControl; } case QmlProfilerRunMode: { - AnalyzerStartParameters params = RemoteLinuxAnalyzeSupport::startParameters(rc, mode); + AnalyzerStartParameters params = RemoteLinuxAnalyzeSupport::startParameters(runConfig, mode); + auto * const rc = qobject_cast(runConfig); + QTC_ASSERT(rc, return 0); AnalyzerRunControl *runControl = AnalyzerManager::createRunControl(params, runConfig); - RemoteLinuxAnalyzeSupport * const analyzeSupport = - new RemoteLinuxAnalyzeSupport(rc, runControl, mode); - connect(runControl, SIGNAL(finished()), analyzeSupport, SLOT(handleProfilingFinished())); + (void) new RemoteLinuxAnalyzeSupport(rc, runControl, mode); return runControl; } case PerfProfilerRunMode: