1
0
Fork 0

DBG+GUI: maximum trace count option

This commit is contained in:
mrexodia 2016-10-19 13:02:55 +02:00
parent fcf5916250
commit e0d6469dc5
No known key found for this signature in database
GPG Key ID: FC89E0AAA0C1AAD8
6 changed files with 63 additions and 9 deletions

View File

@ -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))

View File

@ -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)

View File

@ -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<int>() << 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<int> sizes;
sizes.append(87);
sizes.append(14);
ui->mTopRightVSplitter->setSizes(sizes);
ui->mTopRightVSplitter->setSizes(QList<int>() << 87 << 14);
ui->mTopRightVSplitter->setCollapsible(1, true); //allow collapsing of the ArgumentWidget
ui->mTopRightUpperFrameLayout->addWidget(button_changeview);

View File

@ -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;
}

View File

@ -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<RangeStruct>* exceptionRanges;
//Disasm Tab

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>381</width>
<height>420</height>
<height>445</height>
</rect>
</property>
<property name="sizePolicy">
@ -33,7 +33,7 @@
<bool>true</bool>
</property>
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="tabEvents">
<attribute name="title">
@ -310,6 +310,48 @@
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QLabel" name="lblMaxTraceCount">
<property name="text">
<string>Default maximum trace &amp;count</string>
</property>
<property name="buddy">
<cstring>spinMaxTraceCount</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinMaxTraceCount">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="wrapping">
<bool>false</bool>
</property>
<property name="frame">
<bool>true</bool>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::UpDownArrows</enum>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>2147483647</number>
</property>
<property name="value">
<number>50000</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">