forked from qt-creator/qt-creator
Debugger: Fix break at qWarning()/qFatal() for Qt 5.
Use the same setting in CDB, move it to common settings page in a follow-up commit. Change-Id: I67d6cd706f658c616a431e9d518d52e020afa54c Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -825,6 +825,14 @@ void CdbEngine::runEngine()
|
||||
postCommand(breakAtFunctionCommand(breakFunction), 0);
|
||||
}
|
||||
}
|
||||
if (debuggerCore()->boolSetting(BreakOnWarning)) {
|
||||
postCommand("bm /( QtCored4!qWarning", 0); // 'bm': All overloads.
|
||||
postCommand("bm /( Qt5Cored!QMessageLogger::warning", 0);
|
||||
}
|
||||
if (debuggerCore()->boolSetting(BreakOnFatal)) {
|
||||
postCommand("bm /( QtCored4!qFatal", 0); // 'bm': All overloads.
|
||||
postCommand("bm /( Qt5Cored!QMessageLogger::fatal", 0);
|
||||
}
|
||||
if (startParameters().startMode == AttachCore) {
|
||||
QTC_ASSERT(!m_coreStopReason.isNull(), return; );
|
||||
notifyInferiorUnrunnable();
|
||||
|
||||
@@ -5096,14 +5096,19 @@ void GdbEngine::handleNamespaceExtraction(const GdbResponse &response)
|
||||
} else {
|
||||
if (debuggerCore()->boolSetting(BreakOnAbort))
|
||||
postCommand("-break-insert -f abort");
|
||||
if (debuggerCore()->boolSetting(BreakOnWarning))
|
||||
if (debuggerCore()->boolSetting(BreakOnWarning)) {
|
||||
postCommand("-break-insert -f '" + qtNamespace() + "qWarning'");
|
||||
if (debuggerCore()->boolSetting(BreakOnFatal))
|
||||
postCommand("-break-insert -f '" + qtNamespace() + "QMessageLogger::warning'");
|
||||
}
|
||||
if (debuggerCore()->boolSetting(BreakOnFatal)) {
|
||||
postCommand("-break-insert -f '" + qtNamespace() + "qFatal'",
|
||||
CB(handleBreakOnQFatal));
|
||||
else
|
||||
CB(handleBreakOnQFatal), QVariant(false));
|
||||
postCommand("-break-insert -f '" + qtNamespace() + "QMessageLogger::fatal'",
|
||||
CB(handleBreakOnQFatal), QVariant(true));
|
||||
} else {
|
||||
notifyInferiorSetupOk();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GdbEngine::handleBreakOnQFatal(const GdbResponse &response)
|
||||
@@ -5119,6 +5124,7 @@ void GdbEngine::handleBreakOnQFatal(const GdbResponse &response)
|
||||
}
|
||||
|
||||
// Continue setup.
|
||||
if (response.cookie.toBool())
|
||||
notifyInferiorSetupOk();
|
||||
}
|
||||
|
||||
|
||||
@@ -187,6 +187,7 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent)
|
||||
"of debug information such as <i>/usr/src/debug</i> "
|
||||
"when starting GDB.</body></html>"));
|
||||
|
||||
// #fixme: 2.7 Move to common settings page.
|
||||
checkBoxBreakOnWarning = new QCheckBox(groupBoxGeneral);
|
||||
checkBoxBreakOnWarning->setText(CommonOptionsPage::msgSetBreakpointAtFunction("qWarning"));
|
||||
checkBoxBreakOnWarning->setToolTip(CommonOptionsPage::msgSetBreakpointAtFunctionToolTip("qWarning"));
|
||||
|
||||
Reference in New Issue
Block a user