diff options
author | hjk <qtc-committer@nokia.com> | 2011-05-30 16:01:50 +0200 |
---|---|---|
committer | hjk <qthjk@ovi.com> | 2011-05-30 16:00:22 +0200 |
commit | cf62837fab55331217b3c7eb87c9ca84d36117ad (patch) | |
tree | b4b4a2d6062d93c6b0ef03c1ab6fcba35e072132 /src | |
parent | 7295d50591be94a79bfd4c2ac5e159091fb2489c (diff) | |
download | qt-creator-cf62837fab55331217b3c7eb87c9ca84d36117ad.tar.gz |
debugger: implement an option to stop on qWarnings (gdb only)
Task-number: QTCREATORBUG-842
Change-Id: If1a7d0cd9dfaa5b6b4915fa67a150683cf6786b9
Reviewed-on: http://codereview.qt.nokia.com/226
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/debugger/debuggeractions.cpp | 8 | ||||
-rw-r--r-- | src/plugins/debugger/debuggeractions.h | 1 | ||||
-rw-r--r-- | src/plugins/debugger/gdb/gdbengine.cpp | 7 | ||||
-rw-r--r-- | src/plugins/debugger/gdb/gdboptionspage.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/gdb/gdboptionspage.ui | 7 |
5 files changed, 23 insertions, 2 deletions
diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp index 5c3889a112..b36c4ddfbc 100644 --- a/src/plugins/debugger/debuggeractions.cpp +++ b/src/plugins/debugger/debuggeractions.cpp @@ -321,6 +321,14 @@ DebuggerSettings::DebuggerSettings(QSettings *settings) item->setSettingsKey(debugModeGroup, QLatin1String("BreakOnCatch")); insertItem(BreakOnCatch, item); + item = new SavedAction(this); + item->setText(tr("Break on \"qWarning\"")); + item->setCheckable(true); + item->setDefaultValue(false); + item->setValue(false); + item->setSettingsKey(debugModeGroup, QLatin1String("BreakOnWarning")); + insertItem(BreakOnWarning, item); + // // Settings // diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h index 40502aaa36..9294bb55ec 100644 --- a/src/plugins/debugger/debuggeractions.h +++ b/src/plugins/debugger/debuggeractions.h @@ -150,6 +150,7 @@ enum DebuggerActionCode SelectedPluginBreakpointsPattern, BreakOnThrow, BreakOnCatch, + BreakOnWarning, // Registers AlwaysAdjustRegistersColumnWidths, diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 58eed9bcfe..c3de36059c 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -4726,11 +4726,14 @@ void GdbEngine::handleNamespaceExtraction(const GdbResponse &response) setQtNamespace(ns + "::"); } - if (startParameters().startMode == AttachCore) + if (startParameters().startMode == AttachCore) { notifyInferiorSetupOk(); // No breakpoints in core files. - else + } else { postCommand("-break-insert -f '" + qtNamespace() + "qFatal'", CB(handleBreakOnQFatal)); + if (debuggerCore()->boolSetting(BreakOnWarning)) + postCommand("-break-insert -f '" + qtNamespace() + "qWarning'"); + } } void GdbEngine::handleBreakOnQFatal(const GdbResponse &response) diff --git a/src/plugins/debugger/gdb/gdboptionspage.cpp b/src/plugins/debugger/gdb/gdboptionspage.cpp index ccfa4aa11a..404a92e8c5 100644 --- a/src/plugins/debugger/gdb/gdboptionspage.cpp +++ b/src/plugins/debugger/gdb/gdboptionspage.cpp @@ -94,6 +94,8 @@ QWidget *GdbOptionsPage::createPage(QWidget *parent) m_ui->checkBoxTargetAsync); m_group.insert(debuggerCore()->action(AdjustBreakpointLocations), m_ui->checkBoxAdjustBreakpointLocations); + m_group.insert(debuggerCore()->action(BreakOnWarning), + m_ui->checkBoxBreakOnWarning); m_group.insert(debuggerCore()->action(GdbWatchdogTimeout), m_ui->spinBoxGdbWatchdogTimeout); diff --git a/src/plugins/debugger/gdb/gdboptionspage.ui b/src/plugins/debugger/gdb/gdboptionspage.ui index 2abf248de2..9445a0d837 100644 --- a/src/plugins/debugger/gdb/gdboptionspage.ui +++ b/src/plugins/debugger/gdb/gdboptionspage.ui @@ -123,6 +123,13 @@ on slow machines. In this case, the value should be increased.</string> </widget> </item> <item row="7" column="0" colspan="2"> + <widget class="QCheckBox" name="checkBoxBreakOnWarning"> + <property name="text"> + <string>Stop when a qWarning is issued</string> + </property> + </widget> + </item> + <item row="8" column="0" colspan="2"> <widget class="QCheckBox" name="checkBoxEnableReverseDebugging"> <property name="toolTip"> <string><html><head/><body><p>Selecting this enables reverse debugging.</p><.p><b>Note:</b>This feature is very slow and unstable on the GDB side. It exhibits unpredictable behaviour when going backwards over system calls and is very likely to destroy your debugging session.</p><body></html></string> |