// JPM Oct./2018 Added search paths in the settings, breakpoints feature, cartridge view menu\r
// JPM 11/18/2018 Fix crash with non-debugger mode\r
// JPM April/2019 Added ELF sections check, added a save memory dump\r
-// JPM Aug./2019 Update texts descriptions, set cartridge view menu for debugger mode only, added a HW registers browser\r
+// JPM Aug./2019 Update texts descriptions, set cartridge view menu for debugger mode only, added a HW registers browser and source level tracing\r
+// JPM Marc./2020 Added the step over for source level tracing\r
//\r
\r
// FIXED:\r
//\r
// STILL TO BE DONE:\r
//\r
+// - The source file listing do not need to be refresh more than one time\r
// - Fix bug in switching between PAL & NTSC in fullscreen mode.\r
// - Remove SDL dependencies (sound, mainly) from Jaguar core lib\r
-// - Fix inconsistency with trailing slashes in paths (eeproms needs one,\r
-// software doesn't)\r
+// - Fix inconsistency with trailing slashes in paths (eeproms needs one, software doesn't)\r
//\r
// SFDX CODE: S1E9T8H5M23YS\r
\r
#include "debugger/DBGManager.h"\r
//#include "debugger/VideoWin.h"\r
//#include "debugger/DasmWin.h"\r
+#include "debugger/SourcesWin.h"\r
#include "debugger/m68KDasmWin.h"\r
#include "debugger/GPUDasmWin.h"\r
#include "debugger/DSPDasmWin.h"\r
#endif\r
// Setup disasm tabs\r
dasmtabWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);\r
- dasmtabWidget->addTab(m68kDasmWin = new m68KDasmWindow(this), tr("M68000"));\r
+ dasmtabWidget->addTab(SourcesWin = new SourcesWindow(this), tr("Sources"));\r
+ dasmtabWidget->setCurrentIndex(dasmtabWidget->addTab(m68kDasmWin = new m68KDasmWindow(this), tr("M68000")));\r
dasmtabWidget->addTab(GPUDasmWin = new GPUDasmWindow(this), tr("GPU"));\r
dasmtabWidget->addTab(DSPDasmWin = new DSPDasmWindow(this), tr("DSP"));\r
+ connect(dasmtabWidget, SIGNAL(currentChanged(const int)), this, SLOT(SelectdasmtabWidget(const int)));\r
#if 1\r
setCentralWidget(dasmtabWidget);\r
#endif\r
}\r
\r
\r
+// \r
+void MainWin::SelectdasmtabWidget(const int Index)\r
+{\r
+ // check sources tab\r
+ if (Index == 0)\r
+ {\r
+ SourcesWin->RefreshContents();\r
+ }\r
+}\r
+\r
+\r
void MainWin::closeEvent(QCloseEvent * event)\r
{\r
JaguarDone();\r
{\r
m68k_set_reg(M68K_REG_A6, 0);\r
m68kDasmWin->SetAddress(jaguarRunAddress);\r
+ SourcesWin->Init();\r
//pauseAct->setDisabled(false);\r
//pauseAct->setChecked(true);\r
ToggleRunState();\r
// Step Into trace\r
void MainWin::DebuggerTraceStepInto(void)\r
{\r
- JaguarStepInto();\r
+ if (SourcesWin->isVisible() && SourcesWin->GetTraceStatus())\r
+ {\r
+ while (!SourcesWin->CheckChangeLine())\r
+ {\r
+ JaguarStepInto();\r
+ }\r
+ }\r
+ else\r
+ {\r
+ JaguarStepInto();\r
+ }\r
+\r
videoWidget->updateGL();\r
RefreshWindows();\r
#ifdef _MSC_VER\r
m68k_set_reg(M68K_REG_PC, jaguarRunAddress);\r
m68k_set_reg(M68K_REG_SP, vjs.DRAM_size);\r
#endif\r
+ dasmtabWidget->setCurrentIndex(1); // set focus on the disasm M68K tab\r
m68k_set_reg(M68K_REG_A6, 0);\r
m68k_brk_hitcounts_reset();\r
bpmHitCounts = 0;\r
DebuggerResetWindows();\r
CommonResetWindows();\r
+ SourcesWin->Init();\r
RefreshWindows();\r
#ifdef _MSC_VER\r
#pragma message("Warning: !!! Need to verify the Restart function !!!")\r
// Step Over trace\r
void MainWin::DebuggerTraceStepOver(void)\r
{\r
- JaguarStepOver(0);\r
+ if (SourcesWin->isVisible() && SourcesWin->GetTraceStatus())\r
+ {\r
+ while (!SourcesWin->CheckChangeLine())\r
+ {\r
+ JaguarStepOver(0);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ JaguarStepOver(0);\r
+ }\r
+\r
videoWidget->updateGL();\r
RefreshWindows();\r
#ifdef _MSC_VER\r
heapallocatorBrowseWin->Reset();\r
BreakpointsWin->Reset();\r
CartFilesListWin->Reset();\r
+ SourcesWin->Reset();\r
//ResetAlpineWindows();\r
}\r
}\r
if (vjs.softTypeDebugger)\r
{\r
FilesrcListWin->RefreshContents();\r
+ SourcesWin->RefreshContents();\r
m68kDasmWin->RefreshContents();\r
GPUDasmWin->RefreshContents();\r
DSPDasmWin->RefreshContents();\r