Debugger: Transform DebuggerRunParameters::cppEngineType

Task-number: QTCREATORBUG-29168
Change-Id: I002ec876ad78e0e586423e2e88ef0fbef2f81ca6
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2025-01-13 11:44:50 +01:00
parent 3a88493719
commit 66afec520d
5 changed files with 16 additions and 25 deletions

View File

@@ -171,7 +171,7 @@ void AndroidDebugSupport::start()
DebuggerRunParameters &rp = runParameters();
rp.setAttachPid(m_runner->pid());
if (rp.isCppDebugging()) {
if (cppEngineType() == LldbEngineType) {
if (rp.cppEngineType() == LldbEngineType) {
QString deviceSerialNumber = Internal::deviceSerialNumber(runControl()->target());
const int colonPos = deviceSerialNumber.indexOf(QLatin1Char(':'));
if (colonPos > 0) {

View File

@@ -139,7 +139,7 @@ DebuggerRunParameters DebuggerRunParameters::fromRunControl(ProjectExplorer::Run
params.setSysRoot(SysRootKitAspect::sysRoot(kit));
params.macroExpander = runControl->macroExpander();
params.debugger = DebuggerKitAspect::runnable(kit);
params.cppEngineType = DebuggerKitAspect::engineType(kit);
params.m_cppEngineType = DebuggerKitAspect::engineType(kit);
params.version = DebuggerKitAspect::version(kit);
if (QtSupport::QtVersion *qtVersion = QtSupport::QtKitAspect::qtVersion(kit))
@@ -147,7 +147,7 @@ DebuggerRunParameters DebuggerRunParameters::fromRunControl(ProjectExplorer::Run
if (auto aspect = runControl->aspectData<DebuggerRunConfigurationAspect>()) {
if (!aspect->useCppDebugger)
params.cppEngineType = NoEngineType;
params.m_cppEngineType = NoEngineType;
params.m_isQmlDebugging = aspect->useQmlDebugger;
params.isPythonDebugging = aspect->usePythonDebugger;
params.multiProcess = aspect->useMultiProcess;
@@ -309,7 +309,7 @@ void DebuggerRunParameters::setStartMode(DebuggerStartMode startMode)
if (startMode != AttachToQmlServer)
return;
cppEngineType = NoEngineType;
m_cppEngineType = NoEngineType;
m_isQmlDebugging = true;
m_closeMode = KillAtClose;
@@ -336,12 +336,7 @@ void DebuggerRunParameters::addSolibSearchDir(const QString &str)
bool DebuggerRunParameters::isCppDebugging() const
{
return cppEngineType == GdbEngineType
|| cppEngineType == LldbEngineType
|| cppEngineType == CdbEngineType
|| cppEngineType == GdbDapEngineType
|| cppEngineType == LldbDapEngineType
|| cppEngineType == UvscEngineType;
return cppEngineType() != NoEngineType;
}
bool DebuggerRunParameters::isNativeMixedDebugging() const
@@ -3019,9 +3014,9 @@ void CppDebuggerEngine::validateRunParameters(DebuggerRunParameters &rp)
if (CheckableDecider(warnOnInappropriateDebuggerKey).shouldAskAgain()) {
QString preferredDebugger;
if (rp.toolChainAbi.osFlavor() == Abi::WindowsMSysFlavor) {
if (rp.cppEngineType == CdbEngineType)
if (rp.cppEngineType() == CdbEngineType)
preferredDebugger = "GDB";
} else if (rp.cppEngineType != CdbEngineType && rp.cppEngineType != LldbEngineType) {
} else if (rp.cppEngineType() != CdbEngineType && rp.cppEngineType() != LldbEngineType) {
// osFlavor() is MSVC, so the recommended debugger is still CDB,
// but don't warn for LLDB which starts to be usable, too.
preferredDebugger = "CDB";
@@ -3037,7 +3032,7 @@ void CppDebuggerEngine::validateRunParameters(DebuggerRunParameters &rp)
}
}
if (warnOnRelease
&& rp.cppEngineType == CdbEngineType
&& rp.cppEngineType() == CdbEngineType
&& rp.startMode() != AttachToRemoteServer) {
QTC_ASSERT(!rp.symbolFile().isEmpty(), return);
if (!rp.symbolFile().exists() && !rp.symbolFile().endsWith(".exe"))
@@ -3057,7 +3052,7 @@ void CppDebuggerEngine::validateRunParameters(DebuggerRunParameters &rp)
}
case Abi::ElfFormat: {
if (CheckableDecider(warnOnInappropriateDebuggerKey).shouldAskAgain()) {
if (rp.cppEngineType == CdbEngineType) {
if (rp.cppEngineType() == CdbEngineType) {
warnOnInappropriateDebugger = true;
detailedWarning = Tr::tr(
"The inferior is in the ELF format.\n"

View File

@@ -178,7 +178,8 @@ public:
QString additionalStartupCommands() const { return m_additionalStartupCommands; }
DebuggerEngineType cppEngineType = NoEngineType;
DebuggerEngineType cppEngineType() const { return m_cppEngineType; }
QString version;
bool isPythonDebugging = false;
@@ -281,6 +282,8 @@ private:
// Macro-expanded and passed to debugger startup.
QString m_additionalStartupCommands;
DebuggerEngineType m_cppEngineType = NoEngineType;
};
namespace Internal {

View File

@@ -221,7 +221,7 @@ void DebuggerRunTool::startTerminalIfNeededAndContinueStartup()
m_runParameters.useTerminal = false;
// CDB has a built-in console that might be preferred by some.
const bool useCdbConsole = m_runParameters.cppEngineType == CdbEngineType
const bool useCdbConsole = m_runParameters.cppEngineType() == CdbEngineType
&& (m_runParameters.startMode() == StartInternal
|| m_runParameters.startMode() == StartExternal)
&& settings().useCdbConsole();
@@ -310,7 +310,7 @@ void DebuggerRunTool::continueAfterTerminalStart()
return;
}
if (m_runParameters.cppEngineType == CdbEngineType
if (m_runParameters.cppEngineType() == CdbEngineType
&& Utils::is64BitWindowsBinary(m_runParameters.inferior().command.executable())
&& !Utils::is64BitWindowsBinary(m_runParameters.debugger.command.executable())) {
reportFailure(
@@ -338,7 +338,7 @@ void DebuggerRunTool::continueAfterDebugServerStart()
if (m_engines.isEmpty()) {
if (m_runParameters.isCppDebugging()) {
switch (m_runParameters.cppEngineType) {
switch (m_runParameters.cppEngineType()) {
case GdbEngineType:
m_engines << createGdbEngine();
break;
@@ -557,11 +557,6 @@ void DebuggerRunTool::setupPortsGatherer()
runControl()->requestQmlChannel();
}
DebuggerEngineType DebuggerRunTool::cppEngineType() const
{
return m_runParameters.cppEngineType;
}
DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerminal)
: RunWorker(runControl)
, d(new DebuggerRunToolPrivate)

View File

@@ -52,8 +52,6 @@ public:
void setAbi(const ProjectExplorer::Abi &abi);
DebuggerEngineType cppEngineType() const;
DebuggerRunParameters &runParameters() { return m_runParameters; }
private: