GDB/Windows: Break on abort

Task-number: QTCREATORBUG-6773
Change-Id: I082b7d04730a5014ad935d6a079a1829dfcdd34c
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
Orgad Shaneh
2012-01-15 22:21:59 +02:00
committed by hjk
parent 130990ffef
commit 87de819729
4 changed files with 19 additions and 0 deletions

View File

@@ -4932,6 +4932,9 @@ void GdbEngine::handleNamespaceExtraction(const GdbResponse &response)
if (startParameters().startMode == AttachCore) {
notifyInferiorSetupOk(); // No breakpoints in core files.
} else {
if (debuggerCore()->boolSetting(BreakOnAbort)
&& startParameters().toolChainAbi.os() == Abi::WindowsOS)
postCommand("-break-insert -f raise");
if (debuggerCore()->boolSetting(BreakOnWarning))
postCommand("-break-insert -f '" + qtNamespace() + "qWarning'");
if (debuggerCore()->boolSetting(BreakOnFatal))

View File

@@ -71,6 +71,7 @@ public:
QCheckBox *checkBoxAutoEnrichParameters;
QCheckBox *checkBoxBreakOnWarning;
QCheckBox *checkBoxBreakOnFatal;
QCheckBox *checkBoxBreakOnAbort;
QCheckBox *checkBoxEnableReverseDebugging;
QGroupBox *groupBoxStartupCommands;
@@ -164,6 +165,9 @@ public:
checkBoxBreakOnFatal = new QCheckBox(groupBoxGeneral);
checkBoxBreakOnFatal->setText(GdbOptionsPage::tr("Stop when a qFatal is issued"));
checkBoxBreakOnAbort = new QCheckBox(groupBoxGeneral);
checkBoxBreakOnAbort->setText(GdbOptionsPage::tr("Stop when abort is called"));
checkBoxEnableReverseDebugging = new QCheckBox(groupBoxGeneral);
checkBoxEnableReverseDebugging->setText(GdbOptionsPage::tr("Enable reverse debugging"));
checkBoxEnableReverseDebugging->setToolTip(GdbOptionsPage::tr(
@@ -217,6 +221,7 @@ public:
formLayout->addRow(checkBoxAutoEnrichParameters);
formLayout->addRow(checkBoxBreakOnWarning);
formLayout->addRow(checkBoxBreakOnFatal);
formLayout->addRow(checkBoxBreakOnAbort);
formLayout->addRow(checkBoxEnableReverseDebugging);
QGridLayout *startLayout = new QGridLayout(groupBoxStartupCommands);
@@ -293,6 +298,8 @@ QWidget *GdbOptionsPage::createPage(QWidget *parent)
m_ui->checkBoxBreakOnWarning);
m_group.insert(debuggerCore()->action(BreakOnFatal),
m_ui->checkBoxBreakOnFatal);
m_group.insert(debuggerCore()->action(BreakOnAbort),
m_ui->checkBoxBreakOnAbort);
m_group.insert(debuggerCore()->action(GdbWatchdogTimeout),
m_ui->spinBoxGdbWatchdogTimeout);