Debugger: Get rid of setUseDebugServer()

Move fields into DebuggerRunParameters.

Change-Id: Ieb43aede46a6a401da06dbbf2cd43d71ba56fed3
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2025-01-13 18:33:18 +01:00
parent 54b1107672
commit 13f3e73968
5 changed files with 25 additions and 23 deletions

View File

@@ -256,6 +256,15 @@ public:
void setUVisionSimulator(bool on) { m_uVisionSimulator = on; }
bool uVisionSimulator() const { return m_uVisionSimulator; }
void setServerAttachPid(const Utils::ProcessHandle &handle) { m_serverAttachPid = handle; }
Utils::ProcessHandle serverAttachPid() const { return m_serverAttachPid; }
void setServerUseMulti(bool on) { m_serverUseMulti = on; }
bool serverUseMulti() const { return m_serverUseMulti; }
void setServerEssential(bool on) { m_serverEssential = on; }
bool serverEssential() const { return m_serverEssential; }
private:
DebuggerStartMode m_startMode = NoStartMode;
DebuggerCloseMode m_closeMode = KillAtClose;
@@ -348,6 +357,10 @@ private:
Utils::FilePath m_uVisionProjectFilePath; // UVSC-specific debugger constant.
Utils::FilePath m_uVisionOptionsFilePath; // UVSC-specific debugger constant.
bool m_uVisionSimulator = false;
Utils::ProcessHandle m_serverAttachPid;
bool m_serverUseMulti = true;
bool m_serverEssential = true;
};
namespace Internal {

View File

@@ -1674,7 +1674,9 @@ void DebuggerPluginPrivate::attachToRunningApplication()
auto debugger = new DebuggerRunTool(runControl);
DebuggerRunParameters &rp = debugger->runParameters();
debugger->setId("AttachToRunningProcess");
debugger->setUseDebugServer(ProcessHandle(processInfo.processId), false, false);
rp.setServerAttachPid(ProcessHandle(processInfo.processId));
rp.setServerUseMulti(false);
rp.setServerEssential(false);
rp.setStartMode(AttachToRemoteProcess);
rp.setCloseMode(DetachAtClose);
rp.setUseContinueInsteadOfRun(true);

View File

@@ -96,9 +96,6 @@ public:
// DebugServer
Process debuggerServerProc;
ProcessHandle serverAttachPid;
bool serverUseMulti = true;
bool serverEssential = true;
};
} // namespace Internal
@@ -692,15 +689,15 @@ void DebuggerRunTool::startDebugServerIfNeededAndContinueStartup()
const QString ipAndPort("`echo $SSH_CLIENT | cut -d ' ' -f 1`:%1");
cmd.addArgs(ipAndPort.arg(runControl()->debugChannel().port()), CommandLine::Raw);
if (d->serverAttachPid.isValid())
cmd.addArgs({"--attach", QString::number(d->serverAttachPid.pid())});
if (m_runParameters.serverAttachPid().isValid())
cmd.addArgs({"--attach", QString::number(m_runParameters.serverAttachPid().pid())});
else
cmd.addCommandLineAsArgs(runControl()->runnable().command);
} else {
// Something resembling gdbserver
if (d->serverUseMulti)
if (m_runParameters.serverUseMulti())
cmd.addArg("--multi");
if (d->serverAttachPid.isValid())
if (m_runParameters.serverAttachPid().isValid())
cmd.addArg("--attach");
const auto port = runControl()->debugChannel().port();
@@ -713,8 +710,8 @@ void DebuggerRunTool::startDebugServerIfNeededAndContinueStartup()
d->debuggerServerProc.setExtraData(extraData);
}
if (d->serverAttachPid.isValid())
cmd.addArg(QString::number(d->serverAttachPid.pid()));
if (m_runParameters.serverAttachPid().isValid())
cmd.addArg(QString::number(m_runParameters.serverAttachPid().pid()));
}
}
@@ -745,21 +742,13 @@ void DebuggerRunTool::startDebugServerIfNeededAndContinueStartup()
connect(&d->debuggerServerProc, &Process::done, this, [this] {
if (d->terminalProc.error() != QProcess::UnknownError)
reportFailure(d->terminalProc.errorString());
if (d->terminalProc.error() != QProcess::FailedToStart && d->serverEssential)
if (d->terminalProc.error() != QProcess::FailedToStart && m_runParameters.serverEssential())
reportDone();
});
d->debuggerServerProc.start();
}
void DebuggerRunTool::setUseDebugServer(ProcessHandle attachPid, bool essential, bool useMulti)
{
runControl()->requestDebugChannel();
d->serverAttachPid = attachPid;
d->serverEssential = essential;
d->serverUseMulti = useMulti;
}
// DebuggerRunWorkerFactory
DebuggerRunWorkerFactory::DebuggerRunWorkerFactory()

View File

@@ -30,8 +30,6 @@ public:
void start() override;
void stop() override;
void setUseDebugServer(Utils::ProcessHandle attachPid, bool essential, bool useMulti);
void kickoffTerminalProcess();
void interruptTerminal();

View File

@@ -45,13 +45,13 @@ public:
RemoteLinuxDebugWorkerFactory()
{
setProducer([](RunControl *rc) {
rc->requestDebugChannel();
auto debugger = new DebuggerRunTool(rc, DebuggerRunTool::DoNotAllowTerminal);
DebuggerRunParameters &rp = debugger->runParameters();
debugger->setId("RemoteLinuxDebugWorker");
debugger->setupPortsGatherer();
debugger->addQmlServerInferiorCommandLineArgumentIfNeeded();
debugger->setUseDebugServer({}, true, true);
rp.setStartMode(AttachToRemoteServer);
rp.setCloseMode(KillAndExitMonitorAtClose);