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(); DebuggerRunParameters &rp = runParameters();
rp.setAttachPid(m_runner->pid()); rp.setAttachPid(m_runner->pid());
if (rp.isCppDebugging()) { if (rp.isCppDebugging()) {
if (cppEngineType() == LldbEngineType) { if (rp.cppEngineType() == LldbEngineType) {
QString deviceSerialNumber = Internal::deviceSerialNumber(runControl()->target()); QString deviceSerialNumber = Internal::deviceSerialNumber(runControl()->target());
const int colonPos = deviceSerialNumber.indexOf(QLatin1Char(':')); const int colonPos = deviceSerialNumber.indexOf(QLatin1Char(':'));
if (colonPos > 0) { if (colonPos > 0) {

View File

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

View File

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

View File

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

View File

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