diff --git a/src/plugins/valgrind/callgrindengine.cpp b/src/plugins/valgrind/callgrindengine.cpp index 1318945155a..92b13b4f77b 100644 --- a/src/plugins/valgrind/callgrindengine.cpp +++ b/src/plugins/valgrind/callgrindengine.cpp @@ -61,34 +61,32 @@ CallgrindToolRunner::~CallgrindToolRunner() cleanupTempFile(); } -QStringList CallgrindToolRunner::toolArguments() const +void CallgrindToolRunner::addToolArguments(CommandLine &cmd) const { - QStringList arguments = {"--tool=callgrind"}; + cmd << "--tool=callgrind"; if (m_settings.enableCacheSim()) - arguments << "--cache-sim=yes"; + cmd << "--cache-sim=yes"; if (m_settings.enableBranchSim()) - arguments << "--branch-sim=yes"; + cmd << "--branch-sim=yes"; if (m_settings.collectBusEvents()) - arguments << "--collect-bus=yes"; + cmd << "--collect-bus=yes"; if (m_settings.collectSystime()) - arguments << "--collect-systime=yes"; + cmd << "--collect-systime=yes"; if (m_markAsPaused) - arguments << "--instr-atstart=no"; + cmd << "--instr-atstart=no"; // add extra arguments if (!m_argumentForToggleCollect.isEmpty()) - arguments << m_argumentForToggleCollect; + cmd << m_argumentForToggleCollect; - arguments << "--callgrind-out-file=" + m_valgrindOutputFile.path(); + cmd << "--callgrind-out-file=" + m_valgrindOutputFile.path(); - arguments << ProcessArgs::splitArgs(m_settings.callgrindArguments(), HostOsInfo::hostOs()); - - return arguments; + cmd.addArgs(m_settings.callgrindArguments(), CommandLine::Raw); } QString CallgrindToolRunner::progressTitle() const diff --git a/src/plugins/valgrind/callgrindengine.h b/src/plugins/valgrind/callgrindengine.h index 4ec6a16d7fa..d5d26e113a5 100644 --- a/src/plugins/valgrind/callgrindengine.h +++ b/src/plugins/valgrind/callgrindengine.h @@ -48,7 +48,7 @@ public: Q_ENUM(Option) protected: - QStringList toolArguments() const override; + void addToolArguments(Utils::CommandLine &cmd) const override; QString progressTitle() const override; signals: diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp index 38e06d46950..e2921603e98 100644 --- a/src/plugins/valgrind/memchecktool.cpp +++ b/src/plugins/valgrind/memchecktool.cpp @@ -111,7 +111,7 @@ signals: private: QString progressTitle() const override; - QStringList toolArguments() const override; + void addToolArguments(CommandLine &cmd) const override; void startDebugger(qint64 valgrindPid); void appendLog(const QByteArray &data); @@ -181,15 +181,15 @@ void MemcheckToolRunner::stop() ValgrindToolRunner::stop(); } -QStringList MemcheckToolRunner::toolArguments() const +void MemcheckToolRunner::addToolArguments(CommandLine &cmd) const { - QStringList arguments = {"--tool=memcheck", "--gen-suppressions=all"}; + cmd << "--tool=memcheck" << "--gen-suppressions=all"; if (m_settings.trackOrigins()) - arguments << "--track-origins=yes"; + cmd << "--track-origins=yes"; if (m_settings.showReachable()) - arguments << "--show-reachable=yes"; + cmd << "--show-reachable=yes"; QString leakCheckValue; switch (m_settings.leakCheckOnFinish()) { @@ -204,19 +204,17 @@ QStringList MemcheckToolRunner::toolArguments() const leakCheckValue = "summary"; break; } - arguments << "--leak-check=" + leakCheckValue; + cmd << "--leak-check=" + leakCheckValue; for (const FilePath &file : m_settings.suppressions()) - arguments << QString("--suppressions=%1").arg(file.path()); + cmd << QString("--suppressions=%1").arg(file.path()); - arguments << QString("--num-callers=%1").arg(m_settings.numCallers()); + cmd << QString("--num-callers=%1").arg(m_settings.numCallers()); if (m_withGdb) - arguments << "--vgdb=yes" << "--vgdb-error=0"; + cmd << "--vgdb=yes" << "--vgdb-error=0"; - arguments << ProcessArgs::splitArgs(m_settings.memcheckArguments(), HostOsInfo::hostOs()); - - return arguments; + cmd.addArgs(m_settings.memcheckArguments(), CommandLine::Raw); } const FilePaths MemcheckToolRunner::suppressionFiles() const diff --git a/src/plugins/valgrind/valgrindengine.cpp b/src/plugins/valgrind/valgrindengine.cpp index 2d4ab6aadca..a228eb0e09a 100644 --- a/src/plugins/valgrind/valgrindengine.cpp +++ b/src/plugins/valgrind/valgrindengine.cpp @@ -74,9 +74,9 @@ void ValgrindToolRunner::start() m_progress.reportStarted(); CommandLine valgrind{valgrindExecutable}; - valgrind.addArgs(m_settings.valgrindArguments.value(), CommandLine::Raw); + valgrind.addArgs(m_settings.valgrindArguments(), CommandLine::Raw); valgrind.addArgs(genericToolArguments()); - valgrind.addArgs(toolArguments()); + addToolArguments(valgrind); m_runner.setValgrindCommand(valgrind); m_runner.setDebuggee(runControl()->runnable()); diff --git a/src/plugins/valgrind/valgrindengine.h b/src/plugins/valgrind/valgrindengine.h index e5894b17838..d491c7a8476 100644 --- a/src/plugins/valgrind/valgrindengine.h +++ b/src/plugins/valgrind/valgrindengine.h @@ -6,7 +6,6 @@ #include "valgrindsettings.h" #include -#include #include #include @@ -23,7 +22,7 @@ public: protected: virtual QString progressTitle() const = 0; - virtual QStringList toolArguments() const = 0; + virtual void addToolArguments(Utils::CommandLine &cmd) const = 0; ValgrindProjectSettings m_settings; QFutureInterface m_progress;