aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/valgrind
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-08-27 16:44:42 +0200
committerhjk <hjk@qt.io>2019-09-05 13:45:25 +0000
commit758986ea0ec802018b41aece18a98c2dde3327b5 (patch)
tree0528bede9777773efee1fbb5a35ae11cf5b0cfcb /src/plugins/valgrind
parentc9c214057e667beb345879bece5f780ee3287542 (diff)
ProjectExplorer: Store some aspect data by value in the RunControl
Change-Id: Idb7e119b5b0b483ce91efeb21fb415b654cfed4f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/valgrind')
-rw-r--r--src/plugins/valgrind/callgrindengine.cpp10
-rw-r--r--src/plugins/valgrind/callgrindtool.cpp12
-rw-r--r--src/plugins/valgrind/memchecktool.cpp14
-rw-r--r--src/plugins/valgrind/valgrindengine.cpp14
-rw-r--r--src/plugins/valgrind/valgrindengine.h5
5 files changed, 23 insertions, 32 deletions
diff --git a/src/plugins/valgrind/callgrindengine.cpp b/src/plugins/valgrind/callgrindengine.cpp
index d64bb0a3b8..22512b7438 100644
--- a/src/plugins/valgrind/callgrindengine.cpp
+++ b/src/plugins/valgrind/callgrindengine.cpp
@@ -77,18 +77,16 @@ QStringList CallgrindToolRunner::toolArguments() const
{
QStringList arguments = {"--tool=callgrind"};
- QTC_ASSERT(m_settings, return arguments);
-
- if (m_settings->enableCacheSim())
+ if (m_settings.enableCacheSim())
arguments << "--cache-sim=yes";
- if (m_settings->enableBranchSim())
+ if (m_settings.enableBranchSim())
arguments << "--branch-sim=yes";
- if (m_settings->collectBusEvents())
+ if (m_settings.collectBusEvents())
arguments << "--collect-bus=yes";
- if (m_settings->collectSystime())
+ if (m_settings.collectSystime())
arguments << "--collect-systime=yes";
if (m_markAsPaused)
diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp
index 5a78b2efaf..0d8cc15109 100644
--- a/src/plugins/valgrind/callgrindtool.cpp
+++ b/src/plugins/valgrind/callgrindtool.cpp
@@ -786,13 +786,11 @@ void CallgrindToolPrivate::setupRunner(CallgrindToolRunner *toolRunner)
QTC_ASSERT(m_visualization, return);
// apply project settings
- auto settings
- = qobject_cast<ValgrindBaseSettings *>(runControl->settings(ANALYZER_VALGRIND_SETTINGS));
- if (settings) {
- m_visualization->setMinimumInclusiveCostRatio(settings->visualisationMinimumInclusiveCostRatio() / 100.0);
- m_proxyModel.setMinimumInclusiveCostRatio(settings->minimumInclusiveCostRatio() / 100.0);
- m_dataModel.setVerboseToolTipsEnabled(settings->enableEventToolTips());
- }
+ ValgrindProjectSettings settings;
+ settings.fromMap(runControl->settingsData(ANALYZER_VALGRIND_SETTINGS));
+ m_visualization->setMinimumInclusiveCostRatio(settings.visualisationMinimumInclusiveCostRatio() / 100.0);
+ m_proxyModel.setMinimumInclusiveCostRatio(settings.minimumInclusiveCostRatio() / 100.0);
+ m_dataModel.setVerboseToolTipsEnabled(settings.enableEventToolTips());
m_toolBusy = true;
updateRunActions();
diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp
index 5f43eee942..72d33d719b 100644
--- a/src/plugins/valgrind/memchecktool.cpp
+++ b/src/plugins/valgrind/memchecktool.cpp
@@ -191,16 +191,14 @@ QStringList MemcheckToolRunner::toolArguments() const
{
QStringList arguments = {"--tool=memcheck", "--gen-suppressions=all"};
- QTC_ASSERT(m_settings, return arguments);
-
- if (m_settings->trackOrigins())
+ if (m_settings.trackOrigins())
arguments << "--track-origins=yes";
- if (m_settings->showReachable())
+ if (m_settings.showReachable())
arguments << "--show-reachable=yes";
QString leakCheckValue;
- switch (m_settings->leakCheckOnFinish()) {
+ switch (m_settings.leakCheckOnFinish()) {
case ValgrindBaseSettings::LeakCheckOnFinishNo:
leakCheckValue = "no";
break;
@@ -214,10 +212,10 @@ QStringList MemcheckToolRunner::toolArguments() const
}
arguments << "--leak-check=" + leakCheckValue;
- foreach (const QString &file, m_settings->suppressionFiles())
+ foreach (const QString &file, m_settings.suppressionFiles())
arguments << QString("--suppressions=%1").arg(file);
- arguments << QString("--num-callers=%1").arg(m_settings->numCallers());
+ arguments << QString("--num-callers=%1").arg(m_settings.numCallers());
if (m_withGdb)
arguments << "--vgdb=yes" << "--vgdb-error=0";
@@ -227,7 +225,7 @@ QStringList MemcheckToolRunner::toolArguments() const
QStringList MemcheckToolRunner::suppressionFiles() const
{
- return m_settings->suppressionFiles();
+ return m_settings.suppressionFiles();
}
void MemcheckToolRunner::startDebugger(qint64 valgrindPid)
diff --git a/src/plugins/valgrind/valgrindengine.cpp b/src/plugins/valgrind/valgrindengine.cpp
index 4b012e7330..486bbae244 100644
--- a/src/plugins/valgrind/valgrindengine.cpp
+++ b/src/plugins/valgrind/valgrindengine.cpp
@@ -58,11 +58,7 @@ ValgrindToolRunner::ValgrindToolRunner(RunControl *runControl)
runControl->setIcon(ProjectExplorer::Icons::ANALYZER_START_SMALL_TOOLBAR);
setSupportsReRunning(false);
- m_settings =
- qobject_cast<ValgrindBaseSettings *>(runControl->settings(ANALYZER_VALGRIND_SETTINGS));
-
- if (!m_settings)
- m_settings = ValgrindGlobalSettings::instance();
+ m_settings.fromMap(runControl->settingsData(ANALYZER_VALGRIND_SETTINGS));
}
void ValgrindToolRunner::start()
@@ -81,7 +77,7 @@ void ValgrindToolRunner::start()
emit outputReceived(tr("Command line arguments: %1").arg(runnable().debuggeeArgs), DebugFormat);
#endif
- CommandLine valgrind{m_settings->valgrindExecutable()};
+ CommandLine valgrind{m_settings.valgrindExecutable()};
valgrind.addArgs(genericToolArguments());
valgrind.addArgs(toolArguments());
@@ -125,9 +121,9 @@ FilePath ValgrindToolRunner::executable() const
QStringList ValgrindToolRunner::genericToolArguments() const
{
- QTC_ASSERT(m_settings, return QStringList());
QString smcCheckValue;
- switch (m_settings->selfModifyingCodeDetection()) {
+
+ switch (m_settings.selfModifyingCodeDetection()) {
case ValgrindBaseSettings::DetectSmcNo:
smcCheckValue = "none";
break;
@@ -178,7 +174,7 @@ void ValgrindToolRunner::receiveProcessOutput(const QString &output, OutputForma
void ValgrindToolRunner::receiveProcessError(const QString &message, QProcess::ProcessError error)
{
if (error == QProcess::FailedToStart) {
- const QString valgrind = m_settings->valgrindExecutable();
+ const QString valgrind = m_settings.valgrindExecutable();
if (!valgrind.isEmpty())
appendMessage(tr("Error: \"%1\" could not be started: %2").arg(valgrind, message), ErrorMessageFormat);
else
diff --git a/src/plugins/valgrind/valgrindengine.h b/src/plugins/valgrind/valgrindengine.h
index f37ba22999..30ffbdb22f 100644
--- a/src/plugins/valgrind/valgrindengine.h
+++ b/src/plugins/valgrind/valgrindengine.h
@@ -26,10 +26,11 @@
#pragma once
+#include "valgrindsettings.h"
+
#include <projectexplorer/runcontrol.h>
#include <utils/environment.h>
#include <valgrind/valgrindrunner.h>
-#include <valgrind/valgrindsettings.h>
#include <QFutureInterface>
#include <QFutureWatcher>
@@ -53,7 +54,7 @@ protected:
virtual QString progressTitle() const = 0;
virtual QStringList toolArguments() const = 0;
- ValgrindBaseSettings *m_settings = nullptr;
+ ValgrindProjectSettings m_settings;
QFutureInterface<void> m_progress;
ValgrindRunner m_runner;