diff --git a/src/common/Configuration.cpp b/src/common/Configuration.cpp index c92ddffd..6178431d 100644 --- a/src/common/Configuration.cpp +++ b/src/common/Configuration.cpp @@ -127,6 +127,7 @@ static const QHash asmOptions = { { "asm.esil", false }, { "asm.reloff", false }, { "asm.reloff.flags", false }, { "esil.breakoninvalid", true }, + { "dbg.trace_continue", true }, { "graph.offset", false } }; Configuration::Configuration() : QObject(), nativePalette(qApp->palette()) diff --git a/src/dialogs/preferences/DebugOptionsWidget.cpp b/src/dialogs/preferences/DebugOptionsWidget.cpp index 48c0c1a7..49000f77 100644 --- a/src/dialogs/preferences/DebugOptionsWidget.cpp +++ b/src/dialogs/preferences/DebugOptionsWidget.cpp @@ -25,7 +25,13 @@ DebugOptionsWidget::~DebugOptionsWidget() {} void DebugOptionsWidget::updateDebugPlugin() { + ui->traceContinue->setChecked(Config()->getConfigBool("dbg.trace_continue")); + connect(ui->traceContinue, &QCheckBox::toggled, this, + [](bool checked) { Config()->setConfig("dbg.trace_continue", checked); }); ui->esilBreakOnInvalid->setChecked(Config()->getConfigBool("esil.breakoninvalid")); + connect(ui->esilBreakOnInvalid, &QCheckBox::toggled, this, + [](bool checked) { Config()->setConfig("esil.breakoninvalid", checked); }); + disconnect(ui->pluginComboBox, &QComboBox::currentTextChanged, this, &DebugOptionsWidget::onDebugPluginChanged); @@ -67,8 +73,3 @@ void DebugOptionsWidget::updateStackAddr() Core()->setConfig("esil.stack.addr", newAddr); ui->stackAddr->setPlaceholderText(newAddr); } - -void DebugOptionsWidget::on_esilBreakOnInvalid_toggled(bool checked) -{ - Config()->setConfig("esil.breakoninvalid", checked); -} diff --git a/src/dialogs/preferences/DebugOptionsWidget.h b/src/dialogs/preferences/DebugOptionsWidget.h index 9d7050ea..3e8f781a 100644 --- a/src/dialogs/preferences/DebugOptionsWidget.h +++ b/src/dialogs/preferences/DebugOptionsWidget.h @@ -27,5 +27,4 @@ private slots: void updateStackAddr(); void updateStackSize(); void onDebugPluginChanged(const QString &index); - void on_esilBreakOnInvalid_toggled(bool checked); }; diff --git a/src/dialogs/preferences/DebugOptionsWidget.ui b/src/dialogs/preferences/DebugOptionsWidget.ui index e596dd31..cacb6590 100644 --- a/src/dialogs/preferences/DebugOptionsWidget.ui +++ b/src/dialogs/preferences/DebugOptionsWidget.ui @@ -6,75 +6,131 @@ 0 0 - 489 - 201 + 742 + 698 Debug - + - - - QFormLayout::ExpandingFieldsGrow - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - Debug Plugin: + + + + + QLayout::SetDefaultConstraint + + QFormLayout::ExpandingFieldsGrow + + + + + Debug plugin: + + + + + + + + + + + + ESIL options + + + + QLayout::SetDefaultConstraint + + + 24 + + + + + Break esil execution when instruction is invalid (esil.breakoninvalid) + + + + + + + QLayout::SetDefaultConstraint + + + QFormLayout::FieldsStayAtSizeHint + + + + + ESIL stack address: + + + false + + + + + + + Hide text when zooming out and it is smaller than the given value. Higher values can increase Performance. + + + ESIL stack size: + + + + + + + + + + + + - - - - - - - ESIL stack address: - - - - - - - - 0 - 0 - - - - - - - - ESIL stack size: - - - - - - - - 0 - 0 - - - - - - - - Break esil execution when instruction is invalid (esil.breakoninvalid) + + + + Trace options + + + 24 + + + + + Trace each step during continue in a trace session (dbg.trace_continue) + + + Disabling this option means that stepping back after continue will return to the previous PC. Significantly improves performance. + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + +