From e0d6469dc5bae48d14574d34224b8926c773a125 Mon Sep 17 00:00:00 2001 From: mrexodia Date: Wed, 19 Oct 2016 13:02:55 +0200 Subject: [PATCH] DBG+GUI: maximum trace count option --- src/dbg/commands/cmd-tracing.cpp | 4 ++- src/gui/Src/Gui/CPUInfoBox.cpp | 4 +-- src/gui/Src/Gui/CPUWidget.cpp | 6 ++-- src/gui/Src/Gui/SettingsDialog.cpp | 10 +++++++ src/gui/Src/Gui/SettingsDialog.h | 2 ++ src/gui/Src/Gui/SettingsDialog.ui | 46 ++++++++++++++++++++++++++++-- 6 files changed, 63 insertions(+), 9 deletions(-) diff --git a/src/dbg/commands/cmd-tracing.cpp b/src/dbg/commands/cmd-tracing.cpp index 3da15c58..a87c9172 100644 --- a/src/dbg/commands/cmd-tracing.cpp +++ b/src/dbg/commands/cmd-tracing.cpp @@ -21,7 +21,9 @@ static bool cbDebugConditionalTrace(void* callBack, bool stepOver, int argc, cha dputs(QT_TRANSLATE_NOOP("DBG", "Trace already active")); return false; } - duint maxCount = 50000; + duint maxCount; + if(!BridgeSettingGetUint("Engine", "MaxTraceCount", &maxCount) || !maxCount) + maxCount = 50000; if(argc > 2 && !valfromstring(argv[2], &maxCount, false)) return false; if(!dbgsettracecondition(argv[1], maxCount)) diff --git a/src/gui/Src/Gui/CPUInfoBox.cpp b/src/gui/Src/Gui/CPUInfoBox.cpp index c05fec31..fc59fd94 100644 --- a/src/gui/Src/Gui/CPUInfoBox.cpp +++ b/src/gui/Src/Gui/CPUInfoBox.cpp @@ -13,7 +13,7 @@ CPUInfoBox::CPUInfoBox(StdTable* parent) : StdTable(parent) setCellContent(1, 0, ""); setCellContent(2, 0, ""); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); horizontalScrollBar()->setStyleSheet(ConfigHScrollBarStyle()); int height = getHeight(); @@ -39,7 +39,7 @@ void CPUInfoBox::setupContextMenu() int CPUInfoBox::getHeight() { - return ((getRowHeight() + 1) * 3) + 10; + return ((getRowHeight() + 1) * 3); } void CPUInfoBox::setInfoLine(int line, QString text) diff --git a/src/gui/Src/Gui/CPUWidget.cpp b/src/gui/Src/Gui/CPUWidget.cpp index df20fa31..4dbbbef2 100644 --- a/src/gui/Src/Gui/CPUWidget.cpp +++ b/src/gui/Src/Gui/CPUWidget.cpp @@ -37,6 +37,7 @@ CPUWidget::CPUWidget(QWidget* parent) : QWidget(parent), ui(new Ui::CPUWidget) splitter->setCollapsible(0, true); //allow collapsing of the SideBar splitter->setHandleWidth(1); + ui->mTopLeftVSplitter->setSizes(QList() << 100 << 1); ui->mTopLeftVSplitter->setCollapsible(1, true); //allow collapsing of the InfoBox ui->mTopLeftUpperFrameLayout->addWidget(splitter); @@ -67,10 +68,7 @@ CPUWidget::CPUWidget(QWidget* parent) : QWidget(parent), ui(new Ui::CPUWidget) connect(button_changeview, SIGNAL(clicked()), mGeneralRegs, SLOT(onChangeFPUViewAction())); mGeneralRegs->SetChangeButton(button_changeview); - QList sizes; - sizes.append(87); - sizes.append(14); - ui->mTopRightVSplitter->setSizes(sizes); + ui->mTopRightVSplitter->setSizes(QList() << 87 << 14); ui->mTopRightVSplitter->setCollapsible(1, true); //allow collapsing of the ArgumentWidget ui->mTopRightUpperFrameLayout->addWidget(button_changeview); diff --git a/src/gui/Src/Gui/SettingsDialog.cpp b/src/gui/Src/Gui/SettingsDialog.cpp index 02189997..68c474c7 100644 --- a/src/gui/Src/Gui/SettingsDialog.cpp +++ b/src/gui/Src/Gui/SettingsDialog.cpp @@ -59,6 +59,7 @@ void SettingsDialog::LoadSettings() settings.engineEnableTraceRecordDuringTrace = true; settings.engineNoScriptTimeout = false; settings.engineIgnoreInconsistentBreakpoints = false; + settings.engineMaxTraceCount = 50000; settings.exceptionRanges = &realExceptionRanges; settings.disasmArgumentSpaces = false; settings.disasmMemorySpaces = false; @@ -123,6 +124,8 @@ void SettingsDialog::LoadSettings() GetSettingBool("Engine", "SkipInt3Stepping", &settings.engineSkipInt3Stepping); GetSettingBool("Engine", "NoScriptTimeout", &settings.engineNoScriptTimeout); GetSettingBool("Engine", "IgnoreInconsistentBreakpoints", &settings.engineIgnoreInconsistentBreakpoints); + if(BridgeSettingGetUint("Engine", "MaxTraceCount", &cur)) + settings.engineMaxTraceCount = int(cur); switch(settings.engineCalcType) { case calc_signed: @@ -153,6 +156,7 @@ void SettingsDialog::LoadSettings() ui->chkSkipInt3Stepping->setChecked(settings.engineSkipInt3Stepping); ui->chkNoScriptTimeout->setChecked(settings.engineNoScriptTimeout); ui->chkIgnoreInconsistentBreakpoints->setChecked(settings.engineIgnoreInconsistentBreakpoints); + ui->spinMaxTraceCount->setValue(settings.engineMaxTraceCount); //Exceptions tab char exceptionRange[MAX_SETTING_SIZE] = ""; @@ -290,6 +294,7 @@ void SettingsDialog::SaveSettings() BridgeSettingSetUint("Engine", "SkipInt3Stepping", settings.engineSkipInt3Stepping); BridgeSettingSetUint("Engine", "NoScriptTimeout", settings.engineNoScriptTimeout); BridgeSettingSetUint("Engine", "IgnoreInconsistentBreakpoints", settings.engineIgnoreInconsistentBreakpoints); + BridgeSettingSetUint("Engine", "MaxTraceCount", settings.engineMaxTraceCount); //Exceptions tab QString exceptionRange = ""; @@ -708,3 +713,8 @@ void SettingsDialog::on_chkNoForegroundWindow_toggled(bool checked) { settings.guiNoForegroundWindow = checked; } + +void SettingsDialog::on_spinMaxTraceCount_valueChanged(int arg1) +{ + settings.engineMaxTraceCount = arg1; +} diff --git a/src/gui/Src/Gui/SettingsDialog.h b/src/gui/Src/Gui/SettingsDialog.h index cf4bbaae..e8c28e99 100644 --- a/src/gui/Src/Gui/SettingsDialog.h +++ b/src/gui/Src/Gui/SettingsDialog.h @@ -53,6 +53,7 @@ private slots: void on_chkSkipInt3Stepping_toggled(bool checked); void on_chkNoScriptTimeout_stateChanged(int arg1); void on_chkIgnoreInconsistentBreakpoints_toggled(bool checked); + void on_spinMaxTraceCount_valueChanged(int arg1); //Exception tab void on_btnAddRange_clicked(); void on_btnDeleteRange_clicked(); @@ -133,6 +134,7 @@ private: bool engineSkipInt3Stepping; bool engineNoScriptTimeout; bool engineIgnoreInconsistentBreakpoints; + int engineMaxTraceCount; //Exception Tab QList* exceptionRanges; //Disasm Tab diff --git a/src/gui/Src/Gui/SettingsDialog.ui b/src/gui/Src/Gui/SettingsDialog.ui index fddc53c8..f7814813 100644 --- a/src/gui/Src/Gui/SettingsDialog.ui +++ b/src/gui/Src/Gui/SettingsDialog.ui @@ -7,7 +7,7 @@ 0 0 381 - 420 + 445 @@ -33,7 +33,7 @@ true - 0 + 1 @@ -310,6 +310,48 @@ + + + + + + Default maximum trace &count + + + spinMaxTraceCount + + + + + + + + 0 + 0 + + + + false + + + true + + + QAbstractSpinBox::UpDownArrows + + + 1 + + + 2147483647 + + + 50000 + + + + +