From 3685ce759986db45598cb5c4df2e53568d9dd63c Mon Sep 17 00:00:00 2001 From: hjk <qthjk@ovi.com> Date: Sun, 11 Nov 2012 00:32:33 +0100 Subject: [PATCH] debugger: make string cutoff value configurable Change-Id: I118016956a597ad689daa438f5517a47efe3cef0 Reviewed-by: hjk <qthjk@ovi.com> --- share/qtcreator/dumper/dumper.py | 2 +- src/plugins/debugger/commonoptionspage.cpp | 26 ++++++++++++++++------ src/plugins/debugger/commonoptionspage.h | 2 ++ src/plugins/debugger/debuggeractions.cpp | 5 +++++ src/plugins/debugger/debuggeractions.h | 1 + src/plugins/debugger/gdb/gdbengine.cpp | 4 ++++ 6 files changed, 32 insertions(+), 8 deletions(-) diff --git a/share/qtcreator/dumper/dumper.py b/share/qtcreator/dumper/dumper.py index 66ed976f62e..9577285aee3 100644 --- a/share/qtcreator/dumper/dumper.py +++ b/share/qtcreator/dumper/dumper.py @@ -91,7 +91,7 @@ DisplayUtf8String \ = range(7) -qqStringCutOff = 1000 +qqStringCutOff = 10000 # # Gnuplot based display for array-like structures. diff --git a/src/plugins/debugger/commonoptionspage.cpp b/src/plugins/debugger/commonoptionspage.cpp index 505c252d25b..ed128cb47b5 100644 --- a/src/plugins/debugger/commonoptionspage.cpp +++ b/src/plugins/debugger/commonoptionspage.cpp @@ -41,7 +41,7 @@ #include <projectexplorer/projectexplorer.h> -#include <QFileInfo> +#include <QLabel> #include <QTextStream> using namespace Core; @@ -93,8 +93,7 @@ CommonOptionsPageWidget::CommonOptionsPageWidget checkBoxRegisterForPostMortem->setToolTip(tr("Register Qt Creator for debugging crashed applications.")); checkBoxRegisterForPostMortem->setText(tr("Use Qt Creator for post-mortem debugging")); - labelMaximalStackDepth = new QLabel(behaviorBox); - labelMaximalStackDepth->setText(tr("Maximum stack depth:")); + labelMaximalStackDepth = new QLabel(tr("Maximum stack depth:"), behaviorBox); spinBoxMaximalStackDepth = new QSpinBox(behaviorBox); spinBoxMaximalStackDepth->setSpecialValueText(tr("<unlimited>")); @@ -102,6 +101,14 @@ CommonOptionsPageWidget::CommonOptionsPageWidget spinBoxMaximalStackDepth->setSingleStep(5); spinBoxMaximalStackDepth->setValue(10); + labelMaximalStringLength = new QLabel(tr("Maximum string length:"), behaviorBox); + + spinBoxMaximalStringLength = new QSpinBox(behaviorBox); + spinBoxMaximalStringLength->setSpecialValueText(tr("<unlimited>")); + spinBoxMaximalStringLength->setMaximum(10000000); + spinBoxMaximalStringLength->setSingleStep(1000); + spinBoxMaximalStringLength->setValue(10000); + sourcesMappingWidget = new DebuggerSourcePathMappingWidget(this); QHBoxLayout *horizontalLayout = new QHBoxLayout(); @@ -109,20 +116,25 @@ CommonOptionsPageWidget::CommonOptionsPageWidget horizontalLayout->addWidget(spinBoxMaximalStackDepth); horizontalLayout->addStretch(); + QHBoxLayout *horizontalLayout2 = new QHBoxLayout(); + horizontalLayout2->addWidget(labelMaximalStringLength); + horizontalLayout2->addWidget(spinBoxMaximalStringLength); + horizontalLayout2->addStretch(); + QGridLayout *gridLayout = new QGridLayout(behaviorBox); gridLayout->addWidget(checkBoxUseAlternatingRowColors, 0, 0, 1, 1); gridLayout->addWidget(checkBoxUseToolTipsInMainEditor, 1, 0, 1, 1); gridLayout->addWidget(checkBoxCloseBuffersOnExit, 2, 0, 1, 1); gridLayout->addWidget(checkBoxBringToForegroundOnInterrrupt, 3, 0, 1, 1); gridLayout->addWidget(checkBoxBreakpointsFullPath, 4, 0, 1, 1); + gridLayout->addLayout(horizontalLayout, 6, 0, 1, 2); gridLayout->addWidget(checkBoxFontSizeFollowsEditor, 0, 1, 1, 1); gridLayout->addWidget(checkBoxListSourceFiles, 1, 1, 1, 1); gridLayout->addWidget(checkBoxSwitchModeOnExit, 2, 1, 1, 1); gridLayout->addWidget(checkBoxShowQmlObjectTree, 3, 1, 1, 1); gridLayout->addWidget(checkBoxRegisterForPostMortem, 4, 1, 1, 1); - - gridLayout->addLayout(horizontalLayout, 6, 0, 1, 2); + gridLayout->addLayout(horizontalLayout2, 6, 1, 1, 2); QVBoxLayout *verticalLayout = new QVBoxLayout(this); verticalLayout->addWidget(behaviorBox); @@ -161,8 +173,8 @@ CommonOptionsPageWidget::CommonOptionsPageWidget m_group->insert(dc->action(UseAddressInBreakpointsView), 0); m_group->insert(dc->action(UseAddressInStackView), 0); m_group->insert(dc->action(AlwaysAdjustStackColumnWidths), 0); - m_group->insert(dc->action(MaximalStackDepth), - spinBoxMaximalStackDepth); + m_group->insert(dc->action(MaximalStackDepth), spinBoxMaximalStackDepth); + m_group->insert(dc->action(MaximalStringLength), spinBoxMaximalStringLength); m_group->insert(dc->action(ShowStdNamespace), 0); m_group->insert(dc->action(ShowQtNamespace), 0); m_group->insert(dc->action(SortStructMembers), 0); diff --git a/src/plugins/debugger/commonoptionspage.h b/src/plugins/debugger/commonoptionspage.h index 474aab5514d..b018c2b94a1 100644 --- a/src/plugins/debugger/commonoptionspage.h +++ b/src/plugins/debugger/commonoptionspage.h @@ -74,7 +74,9 @@ private: QCheckBox *checkBoxBreakpointsFullPath; QCheckBox *checkBoxRegisterForPostMortem; QLabel *labelMaximalStackDepth; + QLabel *labelMaximalStringLength; QSpinBox *spinBoxMaximalStackDepth; + QSpinBox *spinBoxMaximalStringLength; DebuggerSourcePathMappingWidget *sourcesMappingWidget; const QSharedPointer<Utils::SavedActionSet> m_group; diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp index 655f3bcda55..a80ad358b68 100644 --- a/src/plugins/debugger/debuggeractions.cpp +++ b/src/plugins/debugger/debuggeractions.cpp @@ -552,6 +552,11 @@ DebuggerSettings::DebuggerSettings(QSettings *settings) item->setDefaultValue(20); insertItem(MaximalStackDepth, item); + item = new SavedAction(this); + item->setSettingsKey(debugModeGroup, QLatin1String("MaximalStringLength")); + item->setDefaultValue(10000); + insertItem(MaximalStringLength, item); + item = new SavedAction(this); item->setText(tr("Reload Full Stack")); insertItem(ExpandStack, item); diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h index a3413b480c9..358f87f9432 100644 --- a/src/plugins/debugger/debuggeractions.h +++ b/src/plugins/debugger/debuggeractions.h @@ -140,6 +140,7 @@ enum DebuggerActionCode SortStructMembers, AutoDerefPointers, AlwaysAdjustLocalsColumnWidths, + MaximalStringLength, // Source List ListSourceFiles, diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 802ea2fc5b6..500724ebdeb 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -4905,6 +4905,10 @@ void GdbEngine::loadPythonDumpers() postCommand("python execfile('" + dumperSourcePath + "qttypes.py')", ConsoleCommand|NonCriticalResponse); + postCommand("python qqStringCutOff = " + + debuggerCore()->action(MaximalStringLength)->value().toByteArray(), + ConsoleCommand|NonCriticalResponse); + loadInitScript(); postCommand("bbsetup", ConsoleCommand, CB(handleHasPython)); -- GitLab