ValgrindRunner: Remove ValgrindRunner::setDevice

The device can now be determined from the debuggee's file path.

Change-Id: I2b24d6e325f74826a644d02a9e418576c4e9b436
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2022-06-17 10:56:05 +02:00
parent 13c7513024
commit d783b4d5ff
5 changed files with 13 additions and 28 deletions

View File

@@ -26,7 +26,6 @@
#include "valgrindengine.h"
#include "valgrindsettings.h"
#include "valgrindplugin.h"
#include <debugger/analyzer/analyzermanager.h>
@@ -101,7 +100,6 @@ void ValgrindToolRunner::start()
valgrind.addArgs(toolArguments());
m_runner.setValgrindCommand(valgrind);
m_runner.setDevice(device());
m_runner.setDebuggee(runControl()->runnable());
if (auto aspect = runControl()->aspect<TerminalAspect>())

View File

@@ -31,7 +31,6 @@
#include "xmlprotocol/stack.h"
#include "xmlprotocol/suppression.h"
#include <projectexplorer/devicesupport/devicemanager.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/runconfiguration.h>
@@ -483,8 +482,6 @@ void ValgrindMemcheckParserTest::testParserStop()
"-i", dataFile("memcheck-output-sample1.xml"), "--wait", "5" }});
runner.setProcessChannelMode(QProcess::ForwardedChannels);
runner.setDevice(ProjectExplorer::DeviceManager::instance()->defaultDevice(
ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE));
runner.start();
QTest::qWait(500);
runner.stop();
@@ -505,8 +502,6 @@ void ValgrindMemcheckParserTest::testRealValgrind()
ValgrindRunner runner;
runner.setValgrindCommand({"valgrind", {}});
runner.setDebuggee(debuggee);
runner.setDevice(ProjectExplorer::DeviceManager::instance()->defaultDevice(
ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE));
RunnerDumper dumper(&runner);
runner.start();
runner.waitForFinished();
@@ -544,8 +539,6 @@ void ValgrindMemcheckParserTest::testValgrindStartError()
ValgrindRunner runner;
runner.setValgrindCommand({FilePath::fromString(valgrindExe), valgrindArgs});
runner.setDebuggee(debuggeeExecutable);
runner.setDevice(ProjectExplorer::DeviceManager::instance()->defaultDevice(
ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE));
RunnerDumper dumper(&runner);
runner.start();
runner.waitForFinished();

View File

@@ -28,7 +28,6 @@
#include "xmlprotocol/threadedparser.h"
#include <projectexplorer/devicesupport/idevice.h>
#include <utils/hostosinfo.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
@@ -58,7 +57,6 @@ public:
ValgrindRunner *q;
Runnable m_debuggee;
QtcProcess m_valgrindProcess;
IDevice::ConstPtr m_device;
QtcProcess m_findPID;
@@ -187,15 +185,19 @@ void ValgrindRunner::Private::remoteProcessStarted()
QString procEscaped = proc;
procEscaped.replace("/", "\\\\/");
CommandLine cmd(m_device->filePath("/bin/sh"), {});
// sleep required since otherwise we might only match "bash -c..." and not the actual
// valgrind run
cmd.setArguments(QString("-c \""
"sleep 1; ps ax" // list all processes with aliased name
" | grep '%1.*%2'" // find valgrind process that runs with our exec
" | awk '\\$5 ~ /^%3/" // 5th column must start with valgrind process
" {print \\$1;}'" // print 1st then (with PID)
"\"").arg(proc, m_debuggee.command.executable().fileName(), procEscaped));
const FilePath debuggee = m_debuggee.command.executable();
const CommandLine cmd(
debuggee.withNewPath("/bin/sh"),
// sleep required since otherwise we might only match "bash -c..." and not the actual
// valgrind run
QString("-c \""
"sleep 1; ps ax" // list all processes with aliased name
" | grep '%1.*%2'" // find valgrind process that runs with our exec
" | awk '\\$5 ~ /^%3/" // 5th column must start with valgrind process
" {print \\$1;}'" // print 1st then (with PID)
"\"").arg(proc, debuggee.fileName(), procEscaped),
CommandLine::Raw
);
m_findPID.setCommand(cmd);
@@ -264,11 +266,6 @@ void ValgrindRunner::setLocalServerAddress(const QHostAddress &localServerAddres
d->localServerAddress = localServerAddress;
}
void ValgrindRunner::setDevice(const IDevice::ConstPtr &device)
{
d->m_device = device;
}
void ValgrindRunner::setUseTerminal(bool on)
{
d->m_valgrindProcess.setTerminalMode(on ? TerminalMode::On : TerminalMode::Off);

View File

@@ -52,7 +52,6 @@ public:
void setDebuggee(const ProjectExplorer::Runnable &debuggee);
void setProcessChannelMode(QProcess::ProcessChannelMode mode);
void setLocalServerAddress(const QHostAddress &localServerAddress);
void setDevice(const ProjectExplorer::IDeviceConstPtr &device);
void setUseTerminal(bool on);
void waitForFinished() const;

View File

@@ -91,8 +91,6 @@ QString ValgrindTestRunnerTest::runTestBinary(const QString &binary, const QStri
m_runner->setLocalServerAddress(QHostAddress::LocalHost);
m_runner->setValgrindCommand(valgrind);
m_runner->setDebuggee(debuggee);
m_runner->setDevice(DeviceManager::instance()->defaultDevice(
ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE));
m_runner->start();
m_runner->waitForFinished();
return binPath;