diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp index e4026bca81d..aaf9971a623 100644 --- a/src/plugins/debugger/debuggeractions.cpp +++ b/src/plugins/debugger/debuggeractions.cpp @@ -7,6 +7,7 @@ #include "debuggericons.h" #include "debuggerinternalconstants.h" #include "debuggertr.h" +#include "gdb/gdbsettings.h" #ifdef Q_OS_WIN #include "registerpostmortemaction.h" @@ -39,7 +40,28 @@ DebuggerSettings &settings() return settings; } -DebuggerSettings::DebuggerSettings() +DebuggerSettings::DebuggerSettings() : + gdbWatchdogTimeout{gdbSettings().gdbWatchdogTimeout}, + skipKnownFrames{gdbSettings().skipKnownFrames}, + useMessageBoxForSignals{gdbSettings().useMessageBoxForSignals}, + adjustBreakpointLocations{gdbSettings().adjustBreakpointLocations}, + useDynamicType{gdbSettings().useDynamicType}, + loadGdbInit{gdbSettings().loadGdbInit}, + loadGdbDumpers{gdbSettings().loadGdbDumpers}, + intelFlavor{gdbSettings().intelFlavor}, + usePseudoTracepoints{gdbSettings().usePseudoTracepoints}, + useIndexCache{gdbSettings().useIndexCache}, + gdbStartupCommands{gdbSettings().gdbStartupCommands}, + gdbPostAttachCommands{gdbSettings().gdbPostAttachCommands}, + targetAsync{gdbSettings().targetAsync}, + autoEnrichParameters{gdbSettings().autoEnrichParameters}, + breakOnThrow{gdbSettings().breakOnThrow}, + breakOnCatch{gdbSettings().breakOnCatch}, + breakOnWarning{gdbSettings().breakOnWarning}, + breakOnFatal{gdbSettings().breakOnFatal}, + breakOnAbort{gdbSettings().breakOnAbort}, + enableReverseDebugging{gdbSettings().enableReverseDebugging}, + multiInferior{gdbSettings().multiInferior} { const QString debugModeGroup(debugModeSettingsGroupC); const QString cdbSettingsGroup(cdbSettingsGroupC); @@ -467,13 +489,11 @@ DebuggerSettings::~DebuggerSettings() void DebuggerSettings::readSettings() { all.readSettings(); - GdbSettings::readSettings(); } void DebuggerSettings::writeSettings() const { all.writeSettings(); - GdbSettings::writeSettings(); } QString DebuggerSettings::dump() diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h index c4f8c235532..063967dc90f 100644 --- a/src/plugins/debugger/debuggeractions.h +++ b/src/plugins/debugger/debuggeractions.h @@ -3,12 +3,11 @@ #pragma once -#include "gdb/gdbsettings.h" +#include #include #include #include -#include namespace Debugger::Internal { @@ -48,7 +47,7 @@ class GeneralSettings ~GeneralSettings(); }; -class DebuggerSettings : public GdbSettings +class DebuggerSettings { public: explicit DebuggerSettings(); @@ -56,6 +55,29 @@ public: static QString dump(); + Utils::IntegerAspect &gdbWatchdogTimeout; + Utils::BoolAspect &skipKnownFrames; + Utils::BoolAspect &useMessageBoxForSignals; + Utils::BoolAspect &adjustBreakpointLocations; + Utils::BoolAspect &useDynamicType; + Utils::BoolAspect &loadGdbInit; + Utils::BoolAspect &loadGdbDumpers; + Utils::BoolAspect &intelFlavor; + Utils::BoolAspect &usePseudoTracepoints; + Utils::BoolAspect &useIndexCache; + Utils::StringAspect &gdbStartupCommands; + Utils::StringAspect &gdbPostAttachCommands; + + Utils::BoolAspect &targetAsync; + Utils::BoolAspect &autoEnrichParameters; + Utils::BoolAspect &breakOnThrow; + Utils::BoolAspect &breakOnCatch; + Utils::BoolAspect &breakOnWarning; + Utils::BoolAspect &breakOnFatal; + Utils::BoolAspect &breakOnAbort; + Utils::BoolAspect &enableReverseDebugging; + Utils::BoolAspect &multiInferior; + // Page 1: General Utils::BoolAspect useAlternatingRowColors; Utils::BoolAspect useAnnotationsInMainEditor; diff --git a/src/plugins/debugger/disassembleragent.cpp b/src/plugins/debugger/disassembleragent.cpp index b393fe44da2..afe08e2d1fe 100644 --- a/src/plugins/debugger/disassembleragent.cpp +++ b/src/plugins/debugger/disassembleragent.cpp @@ -20,12 +20,10 @@ #include #include -#include #include #include #include -#include using namespace Core; using namespace TextEditor; diff --git a/src/plugins/debugger/gdb/gdbsettings.cpp b/src/plugins/debugger/gdb/gdbsettings.cpp index 2adeeb7931a..31c8e3f6912 100644 --- a/src/plugins/debugger/gdb/gdbsettings.cpp +++ b/src/plugins/debugger/gdb/gdbsettings.cpp @@ -3,6 +3,8 @@ #include "gdbsettings.h" +#include + #include #include #include @@ -18,11 +20,15 @@ using namespace Utils; namespace Debugger::Internal { +GdbSettings &gdbSettings() +{ + static GdbSettings settings; + return settings; +} + GdbSettings::GdbSettings() { - setId("M.Gdb"); - setDisplayName(Tr::tr("GDB")); - setCategory(Constants::DEBUGGER_SETTINGS_CATEGORY); + setAutoApply(false); setSettingsGroup("DebugMode"); useMessageBoxForSignals.setSettingsKey("UseMessageBoxForSignals"); @@ -250,4 +256,20 @@ GdbSettings::GdbSettings() readSettings(); } +// GdbSettingsPage + +class GdbSettingsPage final : public Core::IOptionsPage +{ +public: + GdbSettingsPage() + { + setId("M.Gdb"); + setDisplayName(Tr::tr("GDB")); + setCategory(Constants::DEBUGGER_SETTINGS_CATEGORY); + setSettingsProvider([] { return &gdbSettings(); }); + } +}; + +const GdbSettingsPage settingsPage; + } // Debugger::Internal diff --git a/src/plugins/debugger/gdb/gdbsettings.h b/src/plugins/debugger/gdb/gdbsettings.h index d04e89eb966..73c2646e1ca 100644 --- a/src/plugins/debugger/gdb/gdbsettings.h +++ b/src/plugins/debugger/gdb/gdbsettings.h @@ -3,11 +3,11 @@ #pragma once -#include +#include namespace Debugger::Internal { -class GdbSettings : public Core::PagedSettings +class GdbSettings : public Utils::AspectContainer { public: GdbSettings(); @@ -36,4 +36,6 @@ public: Utils::BoolAspect multiInferior{this}; }; +GdbSettings &gdbSettings(); + } // Debugger::Internal diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 73025062503..2d90f1e76c9 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -36,7 +36,6 @@ #include #include #include -#include #include #include #include