forked from qt-creator/qt-creator
Debugger: Get rid of setUseDebugServer()
Move fields into DebuggerRunParameters. Change-Id: Ieb43aede46a6a401da06dbbf2cd43d71ba56fed3 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -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 {
|
||||
|
@@ -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);
|
||||
|
@@ -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()
|
||||
|
@@ -30,8 +30,6 @@ public:
|
||||
void start() override;
|
||||
void stop() override;
|
||||
|
||||
void setUseDebugServer(Utils::ProcessHandle attachPid, bool essential, bool useMulti);
|
||||
|
||||
void kickoffTerminalProcess();
|
||||
void interruptTerminal();
|
||||
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user