aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorhjk <[email protected]>2013-03-21 17:32:34 +0100
committerhjk <[email protected]>2013-03-22 08:31:59 +0100
commite14bbccb043a07b2738fb047999a7f3e3e1bad27 (patch)
tree7817a0e27278f237a001d2bc0054b5eb95afd960 /src/plugins
parente1c4f12de4b69d59ad29513acd3875fd4dda7b00 (diff)
Debugger: Add an option to import plain gdb pretty printers
This enables the use "official gdb"-styly pretty printers from within Creator. In case there are both variants, Creator-style pretty printers are preferred. Change-Id: Iaa178d922dae4eaa1943e9d5b960a666f80fe4db Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/debugger/debuggeractions.cpp8
-rw-r--r--src/plugins/debugger/debuggeractions.h1
-rw-r--r--src/plugins/debugger/gdb/gdbengine.cpp7
-rw-r--r--src/plugins/debugger/gdb/gdbengine.h1
-rw-r--r--src/plugins/debugger/gdb/gdboptionspage.cpp11
5 files changed, 28 insertions, 0 deletions
diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp
index ec846549500..b8b00437fcb 100644
--- a/src/plugins/debugger/debuggeractions.cpp
+++ b/src/plugins/debugger/debuggeractions.cpp
@@ -358,6 +358,14 @@ DebuggerSettings::DebuggerSettings(QSettings *settings)
insertItem(LoadGdbInit, item);
item = new SavedAction(this);
+ item->setSettingsKey(debugModeGroup, QLatin1String("LoadGdbDumpers"));
+ item->setDefaultValue(QString());
+ item->setCheckable(true);
+ item->setDefaultValue(true);
+ item->setValue(true);
+ insertItem(LoadGdbDumpers, item);
+
+ item = new SavedAction(this);
item->setSettingsKey(debugModeGroup, QLatin1String("AutoEnrichParameters"));
item->setDefaultValue(QString());
item->setCheckable(true);
diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h
index c06d47674c8..326cf2c68cd 100644
--- a/src/plugins/debugger/debuggeractions.h
+++ b/src/plugins/debugger/debuggeractions.h
@@ -117,6 +117,7 @@ enum DebuggerActionCode
// Gdb
LoadGdbInit,
+ LoadGdbDumpers,
AttemptQuickStart,
GdbStartupCommands,
GdbPostAttachCommands,
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index b77e5d634f1..e5f9eb144ed 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -262,6 +262,7 @@ GdbEngine::GdbEngine(const DebuggerStartParameters &startParameters)
m_disassembleUsesComma = false;
m_terminalTrap = startParameters.useTerminal;
m_fullStartDone = false;
+ m_systemDumpersLoaded = false;
m_forceAsyncModel = false;
m_pythonAttemptedToLoad = false;
@@ -1606,6 +1607,12 @@ void GdbEngine::handleStop1(const GdbMi &data)
else
m_resultVarName.clear();
+ if (!m_systemDumpersLoaded) {
+ m_systemDumpersLoaded = true;
+ if (debuggerCore()->boolSetting(LoadGdbDumpers))
+ postCommand("importPlainDumpers");
+ }
+
bool initHelpers = m_debuggingHelperState == DebuggingHelperUninitialized
|| m_debuggingHelperState == DebuggingHelperLoadTried;
// Don't load helpers on stops triggered by signals unless it's
diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h
index 48b27c0b6fb..552db054924 100644
--- a/src/plugins/debugger/gdb/gdbengine.h
+++ b/src/plugins/debugger/gdb/gdbengine.h
@@ -708,6 +708,7 @@ protected:
// debug information.
bool attemptQuickStart() const;
bool m_fullStartDone;
+ bool m_systemDumpersLoaded;
bool m_pythonAttemptedToLoad;
// Test
diff --git a/src/plugins/debugger/gdb/gdboptionspage.cpp b/src/plugins/debugger/gdb/gdboptionspage.cpp
index 8a69a3b34df..86bd7ce3616 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.cpp
+++ b/src/plugins/debugger/gdb/gdboptionspage.cpp
@@ -74,6 +74,7 @@ public:
QCheckBox *checkBoxAdjustBreakpointLocations;
QCheckBox *checkBoxUseDynamicType;
QCheckBox *checkBoxLoadGdbInit;
+ QCheckBox *checkBoxLoadGdbDumpers;
QCheckBox *checkBoxIntelFlavor;
QGroupBox *groupBoxStartupCommands;
@@ -155,6 +156,13 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent)
"Allows or inhibits reading the user's default\n"
".gdbinit file on debugger startup."));
+ checkBoxLoadGdbDumpers = new QCheckBox(groupBoxGeneral);
+ checkBoxLoadGdbDumpers->setText(GdbOptionsPage::tr("Load system gdb pretty printers"));
+ checkBoxLoadGdbDumpers->setToolTip(GdbOptionsPage::tr(
+ "Allows or inhibits using the default gdb pretty printers "
+ "installed in your system or linked to the libraries your "
+ "application uses.\n"));
+
checkBoxIntelFlavor = new QCheckBox(groupBoxGeneral);
checkBoxIntelFlavor->setText(GdbOptionsPage::tr("Use Intel style disassembly"));
checkBoxIntelFlavor->setToolTip(GdbOptionsPage::tr(
@@ -226,6 +234,7 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent)
formLayout->addRow(checkBoxAdjustBreakpointLocations);
formLayout->addRow(checkBoxUseDynamicType);
formLayout->addRow(checkBoxLoadGdbInit);
+ formLayout->addRow(checkBoxLoadGdbDumpers);
formLayout->addRow(checkBoxIntelFlavor);
QGridLayout *startLayout = new QGridLayout(groupBoxStartupCommands);
@@ -256,6 +265,7 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent)
group.insert(dc->action(GdbStartupCommands), textEditStartupCommands);
group.insert(dc->action(GdbPostAttachCommands), textEditPostAttachCommands);
group.insert(dc->action(LoadGdbInit), checkBoxLoadGdbInit);
+ group.insert(dc->action(LoadGdbDumpers), checkBoxLoadGdbDumpers);
group.insert(dc->action(UseDynamicType), checkBoxUseDynamicType);
group.insert(dc->action(AdjustBreakpointLocations), checkBoxAdjustBreakpointLocations);
group.insert(dc->action(GdbWatchdogTimeout), spinBoxGdbWatchdogTimeout);
@@ -272,6 +282,7 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent)
QTextStream(&searchKeywords)
<< sep << groupBoxGeneral->title()
<< sep << checkBoxLoadGdbInit->text()
+ << sep << checkBoxLoadGdbDumpers->text()
<< sep << checkBoxUseDynamicType->text()
<< sep << labelGdbWatchdogTimeout->text()
<< sep << checkBoxSkipKnownFrames->text()