diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp index 5c313d1be53..1110c4e5593 100644 --- a/src/plugins/debugger/debuggeractions.cpp +++ b/src/plugins/debugger/debuggeractions.cpp @@ -60,6 +60,7 @@ DebuggerSettings::DebuggerSettings() : intelFlavor{gdbSettings().intelFlavor}, usePseudoTracepoints{gdbSettings().usePseudoTracepoints}, useIndexCache{gdbSettings().useIndexCache}, + useDebugInfoD{gdbSettings().useDebugInfoD}, gdbStartupCommands{gdbSettings().gdbStartupCommands}, gdbPostAttachCommands{gdbSettings().gdbPostAttachCommands}, targetAsync{gdbSettings().targetAsync}, diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h index f20d60839b0..a9dbafff94e 100644 --- a/src/plugins/debugger/debuggeractions.h +++ b/src/plugins/debugger/debuggeractions.h @@ -48,6 +48,7 @@ public: Utils::BoolAspect &intelFlavor; Utils::BoolAspect &usePseudoTracepoints; Utils::BoolAspect &useIndexCache; + Utils::TriStateAspect &useDebugInfoD; Utils::StringAspect &gdbStartupCommands; Utils::StringAspect &gdbPostAttachCommands; diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 9efc98f24c3..e89c96624ef 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -1492,6 +1492,16 @@ void GdbEngine::handleShowVersion(const DebuggerResponse &response) runCommand({"set target-async off", ConsoleCommand}); //runCommand("set build-id-verbose 2", ConsoleCommand); + + if (m_gdbVersion >= 100100) { + const TriState useDebugInfoD = settings().useDebugInfoD(); + if (useDebugInfoD == TriState::Enabled) { + runCommand({"set debuginfod verbose 1"}); + runCommand({"set debuginfod enabled on"}); + } else if (useDebugInfoD == TriState::Disabled) { + runCommand({"set debuginfod enabled off"}); + } + } } } diff --git a/src/plugins/debugger/gdb/gdbsettings.cpp b/src/plugins/debugger/gdb/gdbsettings.cpp index eef19df9719..d0088d59f0e 100644 --- a/src/plugins/debugger/gdb/gdbsettings.cpp +++ b/src/plugins/debugger/gdb/gdbsettings.cpp @@ -166,6 +166,12 @@ GdbSettings::GdbSettings() "binary in the future.")); useIndexCache.setDefaultValue(true); + useDebugInfoD.setSettingsKey("UseDebugInfoD"); + useDebugInfoD.setLabelText(Tr::tr("Use debug info daemon")); + useDebugInfoD.setOptionTexts({}, {}, tr("Use system settings")); + useDebugInfoD.setToolTip(Tr::tr("Lets GDB attempt to automatically retrieve " + "debug information for system packages.")); + skipKnownFrames.setSettingsKey("SkipKnownFrames"); skipKnownFrames.setDisplayName(Tr::tr("Skip Known Frames")); skipKnownFrames.setLabelText(Tr::tr("Skip known frames when stepping")); @@ -221,6 +227,7 @@ GdbSettings::GdbSettings() intelFlavor, usePseudoTracepoints, useIndexCache, + Row { useDebugInfoD, st }, st } }; diff --git a/src/plugins/debugger/gdb/gdbsettings.h b/src/plugins/debugger/gdb/gdbsettings.h index 73c2646e1ca..98b1bf78cb5 100644 --- a/src/plugins/debugger/gdb/gdbsettings.h +++ b/src/plugins/debugger/gdb/gdbsettings.h @@ -22,6 +22,7 @@ public: Utils::BoolAspect intelFlavor{this}; Utils::BoolAspect usePseudoTracepoints{this}; Utils::BoolAspect useIndexCache{this}; + Utils::TriStateAspect useDebugInfoD{this}; Utils::StringAspect gdbStartupCommands{this}; Utils::StringAspect gdbPostAttachCommands{this};