<ClCompile Include="..\src\debugger\brkWin.cpp" />\r
<ClCompile Include="..\src\debugger\callstackbrowser.cpp" />\r
<ClCompile Include="..\src\debugger\exceptionvectortablebrowser.cpp" />\r
+ <ClCompile Include="..\src\debugger\FilesrcListWin.cpp" />\r
<ClCompile Include="..\src\debugger\localbrowser.cpp" />\r
<ClCompile Include="..\src\debugger\VideoWin.cpp" />\r
<ClCompile Include="..\src\file.cpp" />\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
</ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Debug\moc_FilesrcListWin.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+ </ClCompile>\r
<ClCompile Include="GeneratedFiles\Debug\moc_filethread.cpp">\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
</ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Release\moc_FilesrcListWin.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+ </ClCompile>\r
<ClCompile Include="GeneratedFiles\Release\moc_filethread.cpp">\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_NO_DEBUG -DQT_OPENGL_LIB -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -D_UNICODE "-I." "-I.\..\src" "-I.\..\src\gui" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-IC:\SDK\OpenGL\include" "-IC:\SDK\SDL\SDL-1.2.15\include" "-IC:\SDK\DWARF\libdwarf-VS2015\include" "-IC:\SDK\Elf\libelf-0.8.13\include" "-IC:\SDK\zlib\zlib-1.2.11\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command>\r
</CustomBuild>\r
+ <CustomBuild Include="..\src\debugger\FilesrcListWin.h">\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_OPENGL_LIB "-I." "-I.\..\src" "-I.\..\src\gui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtOpenGL" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtWidgets" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtGui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtANGLE" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtCore" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\mkspecs\win32-msvc2015" "-IC:\SDK\SDL-1.2.15\include" "-IC:\SDK\mesa-11.2.0-rc4\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command>\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_OPENGL_LIB -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -D_UNICODE "-I." "-I.\..\src" "-I.\..\src\gui" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-IC:\SDK\SDL\SDL-1.2.15\include" "-IC:\SDK\DWARF\libdwarf-VS2015\include" "-IC:\SDK\Elf\libelf-0.8.13\include" "-IC:\SDK\zlib\zlib-1.2.8\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-IC:\SDK\OpenGL\include"</Command>\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_NO_DEBUG -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_OPENGL_LIB "-I." "-I.\..\src" "-I.\..\src\gui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtOpenGL" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtWidgets" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtGui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtANGLE" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtCore" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\mkspecs\win32-msvc2015" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command>\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_NO_DEBUG -DQT_OPENGL_LIB -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -D_UNICODE "-I." "-I.\..\src" "-I.\..\src\gui" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-IC:\SDK\OpenGL\include" "-IC:\SDK\SDL\SDL-1.2.15\include" "-IC:\SDK\DWARF\libdwarf-VS2015\include" "-IC:\SDK\Elf\libelf-0.8.13\include" "-IC:\SDK\zlib\zlib-1.2.11\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command>\r
+ </CustomBuild>\r
<ClInclude Include="..\src\file.h" />\r
<CustomBuild Include="..\src\gui\keybindingstab.h">\r
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing keybindingstab.h...</Message>\r
<ClCompile Include="..\src\LEB128.cpp">\r
<Filter>Source Files</Filter>\r
</ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Debug\moc_FilesrcListWin.cpp">\r
+ <Filter>Generated Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Release\moc_FilesrcListWin.cpp">\r
+ <Filter>Generated Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\src\debugger\FilesrcListWin.cpp">\r
+ <Filter>Source Files\debugger</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="..\src\debugger\DWARFManager.h">\r
<CustomBuild Include="..\src\gui\modelsbiostab.h">\r
<Filter>Header Files\gui\tab</Filter>\r
</CustomBuild>\r
+ <CustomBuild Include="..\src\debugger\FilesrcListWin.h">\r
+ <Filter>Header Files\debugger</Filter>\r
+ </CustomBuild>\r
</ItemGroup>\r
<ItemGroup>\r
<ResourceCompile Include="..\res\vj.rc">\r
return Symbolname;\r
}\r
\r
+\r
+// Get number of source code filenames\r
+size_t DBGManager_GetNbFullSourceFilename(void)\r
+{\r
+ size_t Nbr = 0;\r
+\r
+ if ((DBGType & DBG_ELFDWARF))\r
+ {\r
+ Nbr = DWARFManager_GetNbFullSourceFilename();\r
+ }\r
+\r
+ return Nbr;\r
+}\r
+\r
+\r
+// Get source code filename based on index\r
+char *DBGManager_GetNumFullSourceFilename(size_t Index)\r
+{\r
+ char *FullSourceFilename = NULL;\r
+\r
+ if ((DBGType & DBG_ELFDWARF))\r
+ {\r
+ FullSourceFilename = DWARFManager_GetNumFullSourceFilename(Index);\r
+ }\r
+\r
+ return FullSourceFilename;\r
+}\r
extern size_t DBGManager_GetAdrFromSymbolName(char *SymbolName);\r
extern char *DBGManager_GetFunctionName(size_t Adr);\r
extern char *DBGManager_GetVariableValueFromAdr(size_t Adr, size_t TypeEncoding, size_t TypeByteSize);\r
+extern size_t DBGManager_GetNbFullSourceFilename(void);\r
+extern char *DBGManager_GetNumFullSourceFilename(size_t Index);\r
\r
// Global variables manager\r
extern size_t DBGManager_GetNbGlobalVariables(void);\r
// --- ---------- ------------------------------------------------------------\r
// JPM 12/03/2016 Created this file\r
// JPM 12/03/2016 DWARF format support\r
-// JPM 09/12/2018 Added LEB128 decoding features\r
-// JPM 09/14/2018 Improve the DWARF parsing information\r
+// JPM Sept./2018 Added LEB128 decoding features, and improve the DWARF parsing information\r
//\r
\r
// To Do\r
return NULL;\r
}\r
\r
+\r
+// Get number of source code filenames\r
+size_t DWARFManager_GetNbFullSourceFilename(void)\r
+{\r
+ return NbCU;\r
+}\r
+\r
+\r
+// Get source code filename based on index\r
+char *DWARFManager_GetNumFullSourceFilename(size_t Index)\r
+{\r
+ return (PtrCU[Index].PtrFullFilename);\r
+}\r
+\r
extern char *DWARFManager_GetLineSrcFromAdrNumLine(size_t Adr, size_t NumLine);\r
extern char *DWARFManager_GetLineSrcFromNumLineBaseAdr(size_t Adr, size_t NumLine);\r
extern char *DWARFManager_GetFunctionName(size_t Adr);\r
+extern size_t DWARFManager_GetNbFullSourceFilename(void);\r
+extern char *DWARFManager_GetNumFullSourceFilename(size_t Index);\r
\r
// Global variables manager\r
extern size_t DWARFManager_GetNbGlobalVariables(void);\r
--- /dev/null
+//
+// FilesrcListWin.cpp - List all source code filenames
+//
+// by Jean-Paul Mari
+//
+// JPM = Jean-Paul Mari <djipi.mari@gmail.com>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JPM 09/23/2018 Created this file
+//
+
+// STILL TO DO:
+// Remove the 1st information, named '1', at the top
+// To allow source code file opening / viewing
+//
+
+#include "debugger/FilesrcListWin.h"
+//#include "memory.h"
+#include "debugger/DBGManager.h"
+
+
+//
+FilesrcListWindow::FilesrcListWindow(QWidget * parent/*= 0*/) : QWidget(parent, Qt::Dialog),
+layout(new QVBoxLayout),
+treeView(new QTreeView),
+standardModel(new QStandardItemModel),
+rootNode(new QStandardItem),
+filesrcItems(NULL),
+statusbar(new QStatusBar),
+nbItem(0)
+{
+ // Setup root
+ rootNode = standardModel->invisibleRootItem();
+ //register the model
+ treeView->setModel(standardModel);
+ treeView->expandAll();
+ layout->addWidget(treeView);
+
+ // Status bar
+ layout->addWidget(statusbar);
+ setLayout(layout);
+}
+
+
+//
+FilesrcListWindow::~FilesrcListWindow(void)
+{
+}
+
+
+//
+void FilesrcListWindow::Reset(void)
+{
+ standardModel->setRowCount(0);
+ free(filesrcItems);
+ filesrcItems = NULL;
+ nbItem = 0;
+}
+
+
+//
+void FilesrcListWindow::RefreshContents(void)
+{
+ size_t Error, Nbr;
+ char msg[1024];
+
+ if (!filesrcItems)
+ {
+ if ((Nbr = UpdateInfos()))
+ {
+ sprintf(msg, "%i files found", Nbr);
+ Error = FSL_NOERROR;
+ }
+ else
+ {
+ sprintf(msg, "No files found");
+ Error = FSL_NOFILESRCLIST;
+ }
+
+ // Display status bar
+ if (Error)
+ {
+ if ((Error & FSL_WARNING))
+ {
+ statusbar->setStyleSheet("background-color: lightyellow; font: bold");
+ }
+ else
+ {
+ statusbar->setStyleSheet("background-color: tomato; font: bold");
+ }
+ }
+ else
+ {
+ statusbar->setStyleSheet("background-color: lightgreen; font: bold");
+ }
+ statusbar->showMessage(QString(msg));
+ }
+}
+
+
+//
+size_t FilesrcListWindow::UpdateInfos(void)
+{
+ size_t Nbr, i;
+
+ Nbr = DBGManager_GetNbFullSourceFilename();
+
+ for (i = 0; i < Nbr; i++)
+ {
+ AddFilename(DBGManager_GetNumFullSourceFilename(i), rootNode, 0);
+ }
+
+ return Nbr;
+}
+
+
+// Add source code filename in the list
+void FilesrcListWindow::AddFilename(char *FileName, QStandardItem *root, size_t ItemPos)
+{
+ char *Ptr = FileName;
+ Sfilesrcitem *PtrNewFilesrc;
+ char Buffer[255];
+ char a;
+
+#ifdef _MSC_VER
+ while ((a = *Ptr++) && (a != '\\'));
+#else
+ while ((a = *Ptr++) && (a != '/'));
+#endif
+ if (a)
+ {
+ strncpy(Buffer, FileName, (Ptr - FileName - 1));
+ Buffer[(Ptr - FileName - 1)] = 0;
+ }
+ else
+ {
+ strcpy(Buffer, FileName);
+ }
+ PtrNewFilesrc = (Sfilesrcitem *)AddItem(Buffer, ItemPos);
+ if (!PtrNewFilesrc->PreviousItem)
+ {
+ PtrNewFilesrc->PreviousItem = root;
+ root->appendRow(PtrNewFilesrc->Item);
+ PtrNewFilesrc->Item->setEditable(false);
+ }
+
+ if (a)
+ {
+ return (AddFilename(Ptr, PtrNewFilesrc->Item, (ItemPos + 1)));
+ }
+}
+
+
+// Add item to the list
+// Return void * on new item or already existing one
+void *FilesrcListWindow::AddItem(char *ItemName, size_t ItemPos)
+{
+ Sfilesrcitem *Ptr = filesrcItems;
+
+ // Look for already existing item
+ for (size_t i = 0; i < nbItem; i++)
+ {
+ if ((Ptr->column == ItemPos) && !strcmp(Ptr->Item->text().toLocal8Bit().constData(), ItemName))
+ {
+ return Ptr;
+ }
+ else
+ {
+ Ptr++;
+ }
+ }
+
+ // Add item in the list
+ filesrcItems = (Sfilesrcitem *)realloc(filesrcItems, (sizeof(Sfilesrcitem) * ++nbItem));
+ (filesrcItems + (nbItem - 1))->column = ItemPos;
+ (filesrcItems + (nbItem - 1))->PreviousItem = NULL;
+ (filesrcItems + (nbItem - 1))->Item = new QStandardItem(ItemName);
+ return (filesrcItems + (nbItem - 1));
+}
--- /dev/null
+//
+// FilesrcListWin.h: List all source code filenames
+//
+// by Jean-Paul Mari
+//
+
+#ifndef __FILESRCLISTWIN_H__
+#define __FILESRCLISTWIN_H__
+
+#include <QtWidgets>
+#include <stdint.h>
+
+// Error code definitions
+#define FSL_NOERROR 0x00
+#define FSL_ERROR 0x80
+#define FSL_WARNING 0x40
+#define FSL_NOFILESRCLIST (0x01 | FSL_WARNING)
+
+
+//
+class FilesrcListWindow: public QWidget
+{
+ Q_OBJECT
+
+ typedef struct _filesrcitem
+ {
+ size_t column;
+ QStandardItem *PreviousItem;
+ QStandardItem *Item;
+ }Sfilesrcitem;
+
+ public:
+ FilesrcListWindow(QWidget *parent = 0);
+ ~FilesrcListWindow(void);
+ void RefreshContents(void);
+ void Reset(void);
+
+ public slots:
+
+ protected:
+ void *AddItem(char *ItemName, size_t ItemPos);
+ void AddFilename(char *FileName, QStandardItem *root, size_t ItemPos);
+ size_t UpdateInfos(void);
+
+ private:
+ size_t nbItem;
+ QVBoxLayout *layout;
+ QTreeView *treeView;
+ QStandardItemModel *standardModel;
+ QStandardItem *rootNode;
+ Sfilesrcitem *filesrcItems;
+ QStatusBar *statusbar;
+};
+
+#endif // __FILESRCLISTWIN_H__
// JLH 12/23/2009 Created this file\r
// JLH 12/20/2010 Added settings, menus & toolbars\r
// JLH 07/05/2011 Added CD BIOS functionality to GUI\r
-// JPM 06/06/2016 Visual Studio support\r
-// JPM 06/19/2016 Soft debugger integration\r
+// JPM June/2016 Visual Studio support & Soft debugger integration\r
// JPM 01/11/2017 Added stack browser\r
-// JPM 01/02/2017 Added GPU disassembly\r
-// JPM 02/02/2017 Added DSP disassembly\r
+// JPM Feb./2017 Added GPU/DSP disassembly\r
// JPM 07/12/2017 Added all Watch window\r
-// JPM 08/01/2017 Added heap allocator window\r
-// JPM 08/07/2017 Added memories window\r
-// JPM 08/10/2017 Added a restart feature\r
-// JPM 08/31/2017 Added breakpoints window [Not Supported]\r
-// JPM 09/01/2017 Save position & visibility windows status in the settings\r
-// JPM 09/02/2017 Save size windows in the settings\r
-// JPM 09/05/2017 Added Exception Vector Table window\r
-// JPM 09/06/2017 Added the 'Rx' word to the emulator window name\r
-// JPM 09/12/2017 Added the keybindings in the settings\r
+// JPM Aug./2017 Added heap allocator and memories window, a restart feature, and a [Not Supported] breakpoints window\r
+// JPM Sept./2017 Save position, size & visibility windows status in the settings; added Exception Vector Table window, the 'Rx' word to the emulator window name, and the keybindings in the settings\r
// JPM 11/04/2017 Added the local window\r
// JPM 08/31/2018 Added the call stack window\r
-// JPM 09/04/2018 Added the new Models and BIOS handler\r
-// JPM 09/17/2018 Added a screenshot feature\r
+// JPM Sept./2018 Added the new Models and BIOS handler, a screenshot feature and source code files browsing\r
//\r
\r
// FIXED:\r
#include "m68000/m68kinterface.h"\r
\r
//#include "debugger/VideoWin.h"\r
-#include "debugger/DasmWin.h"\r
+//#include "debugger/DasmWin.h"\r
#include "debugger/m68KDasmWin.h"\r
#include "debugger/GPUDasmWin.h"\r
#include "debugger/DSPDasmWin.h"\r
#include "debugger/memory1browser.h"\r
-#include "debugger/brkWin.h"\r
+//#include "debugger/brkWin.h"\r
+#include "debugger/FilesrcListWin.h"\r
#include "debugger/exceptionvectortablebrowser.h"\r
#include "debugger/allwatchbrowser.h"\r
#include "debugger/localbrowser.h"\r
//VideoOutputWin = new VideoOutputWindow(this);\r
//VideoOutputWin->setCentralWidget()\r
//DasmWin = new DasmWindow();\r
- DasmWin = new DasmWindow(this);\r
+ //DasmWin = new DasmWindow(this);\r
allWatchBrowseWin = new AllWatchBrowserWindow(this);\r
LocalBrowseWin = new LocalBrowserWindow(this);\r
heapallocatorBrowseWin = new HeapAllocatorBrowserWindow(this);\r
- brkWin = new BrkWindow(this);\r
+ //brkWin = new BrkWindow(this);\r
exceptionvectortableBrowseWin = new ExceptionVectorTableBrowserWindow(this);\r
CallStackBrowseWin = new CallStackBrowserWindow(this);\r
\r
mem1BrowseWin[i] = new Memory1BrowserWindow(this);\r
}\r
\r
+ // Setup dock to display source code filenames tree\r
+ QDockWidget *dockFiles = new QDockWidget(tr("Files"), this);\r
+ dockFiles->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);\r
+ dockFiles->hide();\r
+ addDockWidget(Qt::LeftDockWidgetArea, dockFiles);\r
+ mainWindowCentrale->addAction(dockFiles->toggleViewAction());\r
+ dockFiles->setWidget(FilesrcListWin = new FilesrcListWindow(this));\r
+#if 0\r
+ // Setup dock to display disassembly\r
+ QDockWidget *dockDisasm = new QDockWidget(tr("Disassembly"), this);\r
+ dockDisasm->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);\r
+ addDockWidget(Qt::RightDockWidgetArea, dockDisasm);\r
+ mainWindowCentrale->addAction(dockDisasm->toggleViewAction());\r
+ dockDisasm->setWidget(dasmtabWidget = new QTabWidget(this));\r
+#else\r
dasmtabWidget = new QTabWidget(this);\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(GPUDasmWin = new GPUDasmWindow(this), tr("GPU"));\r
dasmtabWidget->addTab(DSPDasmWin = new DSPDasmWindow(this), tr("DSP"));\r
- ////dasmtabWidget->addTab(m68kDasmBrowseWin, tr("M68000"));\r
+#if 1\r
setCentralWidget(dasmtabWidget);\r
-\r
-#if 0\r
- QDockWidget *shapesDockWidget = new QDockWidget(tr("Shapes"));\r
- shapesDockWidget->setObjectName("shapesDockWidget");\r
- shapesDockWidget->setWidget(m68kDasmWin);\r
- //shapesDockWidget->setWidget(treeWidget);\r
- shapesDockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);\r
- addDockWidget(Qt::LeftDockWidgetArea, shapesDockWidget);\r
#endif\r
}\r
\r
\r
if (vjs.softTypeDebugger)\r
{\r
- VideoOutputAct = new QAction(tr("Output Video"), this);\r
- VideoOutputAct->setStatusTip(tr("Shows the output video window"));\r
- connect(VideoOutputAct, SIGNAL(triggered()), this, SLOT(ShowVideoOutputWin()));\r
+ //VideoOutputAct = new QAction(tr("Output Video"), this);\r
+ //VideoOutputAct->setStatusTip(tr("Shows the output video window"));\r
+ //connect(VideoOutputAct, SIGNAL(triggered()), this, SLOT(ShowVideoOutputWin()));\r
\r
- DasmAct = new QAction(tr("Disassembly"), this);\r
- DasmAct->setStatusTip(tr("Shows the disassembly window"));\r
- connect(DasmAct, SIGNAL(triggered()), this, SLOT(ShowDasmWin()));\r
+ //DasmAct = new QAction(tr("Disassembly"), this);\r
+ //DasmAct->setStatusTip(tr("Shows the disassembly window"));\r
+ //connect(DasmAct, SIGNAL(triggered()), this, SLOT(ShowDasmWin()));\r
}\r
\r
// Misc. connections...\r
\r
// Create toolbars\r
\r
- toolbar = addToolBar(tr("Stuff"));\r
+ toolbar = addToolBar(tr("System"));\r
toolbar->addAction(powerAct);\r
if (!vjs.softTypeDebugger)\r
{\r
{\r
if (refresh == vjs.refresh)\r
{\r
- RefreshAlpineWindows();\r
+ AlpineRefreshWindows();\r
//memBrowseWin->RefreshContents();\r
//cpuBrowseWin->RefreshContents();\r
refresh = 0;\r
//\r
void MainWin::NewBreakpointFunction(void)\r
{\r
- brkWin->show();\r
- brkWin->RefreshContents();\r
+ //brkWin->show();\r
+ //brkWin->RefreshContents();\r
}\r
\r
\r
}\r
\r
\r
+//\r
+#if 0\r
void MainWin::ShowDasmWin(void)\r
{\r
- DasmWin->show();\r
+// DasmWin->show();\r
// DasmWin->RefreshContents();\r
}\r
+#endif\r
\r
\r
+// \r
+#if 0\r
void MainWin::ShowVideoOutputWin(void)\r
{\r
//VideoOutputWindowCentrale = mainWindowCentrale->addSubWindow(videoWidget);\r
//VideoOutputWin->show();\r
//VideoOutputWin->RefreshContents(videoWidget);\r
}\r
+#endif\r
\r
\r
void MainWin::ResizeMainWindow(void)\r
\r
\r
// Refresh alpine debug windows\r
-void MainWin::RefreshAlpineWindows(void)\r
+void MainWin::AlpineRefreshWindows(void)\r
{\r
cpuBrowseWin->RefreshContents();\r
memBrowseWin->RefreshContents();\r
{\r
if (vjs.softTypeDebugger)\r
{\r
+ FilesrcListWin->Reset();\r
allWatchBrowseWin->Reset();\r
heapallocatorBrowseWin->Reset();\r
\r
\r
if (vjs.softTypeDebugger)\r
{\r
+ FilesrcListWin->RefreshContents();\r
m68kDasmWin->RefreshContents();\r
GPUDasmWin->RefreshContents();\r
DSPDasmWin->RefreshContents();\r
mem1BrowseWin[i]->RefreshContents(i);\r
}\r
\r
- RefreshAlpineWindows();\r
+ AlpineRefreshWindows();\r
}\r
}\r
\r
\r
// Main windows\r
class GLWidget;\r
-class VideoWindow;\r
+//class VideoWindow;\r
class AboutWindow;\r
class HelpWindow;\r
class FilePickerWindow;\r
//class VideoOutputWindow;\r
-class DasmWindow;\r
+//class DasmWindow;\r
class m68KDasmWindow;\r
class GPUDasmWindow;\r
class DSPDasmWindow;\r
class CallStackBrowserWindow;\r
class HeapAllocatorBrowserWindow;\r
class Memory1BrowserWindow;\r
-class BrkWindow;\r
+//class BrkWindow;\r
class ExceptionVectorTableBrowserWindow;\r
+class FilesrcListWindow;\r
\r
\r
+// \r
class MainWin: public QMainWindow\r
{\r
// All Qt apps require this macro for signal/slot functionality to work\r
MainWin(bool);\r
void LoadFile(QString);\r
void SyncUI(void);\r
- void DebuggerRefreshWindows(void);\r
- void DebuggerResetWindows(void);\r
- void RefreshAlpineWindows(void);\r
+ void DebuggerRefreshWindows(void);\r
+ void DebuggerResetWindows(void);\r
+ void AlpineRefreshWindows(void);\r
\r
protected:\r
void closeEvent(QCloseEvent *);\r
void ShowMemory1BrowserWin(int NumWin);\r
void ShowExceptionVectorTableBrowserWin(void);\r
void NewBreakpointFunction(void);\r
- void ShowVideoOutputWin(void);\r
- void ShowDasmWin(void);\r
+ //void ShowVideoOutputWin(void);\r
+ //void ShowDasmWin(void);\r
// Alpine\r
void ShowMemoryBrowserWin(void);\r
void ShowStackBrowserWin(void);\r
GLWidget *videoWidget;\r
QMdiArea *mainWindowCentrale;\r
QMdiSubWindow *VideoOutputWindowCentrale;\r
- AboutWindow * aboutWin;\r
- HelpWindow * helpWin;\r
- FilePickerWindow * filePickWin;\r
- EmuStatusWindow * emuStatusWin;\r
- MemoryBrowserWindow * memBrowseWin;\r
- StackBrowserWindow * stackBrowseWin;\r
- CPUBrowserWindow * cpuBrowseWin;\r
- OPBrowserWindow * opBrowseWin;\r
- M68KDasmBrowserWindow * m68kDasmBrowseWin;\r
- RISCDasmBrowserWindow * riscDasmBrowseWin;\r
- //VideoOutputWindow * VideoOutputWin;\r
+ AboutWindow *aboutWin;\r
+ HelpWindow *helpWin;\r
+ FilePickerWindow *filePickWin;\r
+ EmuStatusWindow *emuStatusWin;\r
+ MemoryBrowserWindow *memBrowseWin;\r
+ StackBrowserWindow *stackBrowseWin;\r
+ CPUBrowserWindow *cpuBrowseWin;\r
+ OPBrowserWindow *opBrowseWin;\r
+ M68KDasmBrowserWindow *m68kDasmBrowseWin;\r
+ RISCDasmBrowserWindow *riscDasmBrowseWin;\r
+ //VideoOutputWindow *VideoOutputWin;\r
AllWatchBrowserWindow *allWatchBrowseWin;\r
LocalBrowserWindow *LocalBrowseWin;\r
CallStackBrowserWindow *CallStackBrowseWin;\r
ExceptionVectorTableBrowserWindow *exceptionvectortableBrowseWin;\r
HeapAllocatorBrowserWindow *heapallocatorBrowseWin;\r
Memory1BrowserWindow **mem1BrowseWin;\r
- DasmWindow * DasmWin;\r
+ //DasmWindow * DasmWin;\r
QTabWidget *dasmtabWidget;\r
//QDockWidget *dasmtabWidget;\r
m68KDasmWindow *m68kDasmWin;\r
GPUDasmWindow *GPUDasmWin;\r
DSPDasmWindow *DSPDasmWin;\r
- BrkWindow *brkWin;\r
- QTimer * timer;\r
+ FilesrcListWindow *FilesrcListWin;\r
+ //BrkWindow *brkWin;\r
+ QTimer *timer;\r
bool running;\r
int zoomLevel;\r
bool powerButtonOn;\r
QAction *traceStepIntoAct;\r
QAction *restartAct;\r
QAction * fullScreenAct;\r
- QAction *DasmAct;\r
+ //QAction *DasmAct;\r
QAction *screenshotAct;;\r
\r
// Alpine\r
QAction *riscDasmBrowseAct;\r
\r
// Debugger\r
- QAction *VideoOutputAct;\r
+ //QAction *VideoOutputAct;\r
QAction *heapallocatorBrowseAct;\r
QAction *allWatchBrowseAct;\r
QAction *LocalBrowseAct;\r
src/debugger/memory1browser.h \\r
src/debugger/heapallocatorbrowser.h \\r
src/debugger/brkWin.h \\r
- src/debugger/VideoWin.h \\r
+ src/debugger/VideoWin.h \r
+ src/debugger/FilesrcListWin.h \\r
src/debugger/callstackbrowser.h \\r
src/debugger/exceptionvectortablebrowser.h \\r
src/log.h \\r
src/debugger/heapallocatorbrowser.cpp \\r
src/debugger/brkWin.cpp \\r
src/debugger/VideoWin.cpp \\r
+ src/debugger/FilesrcListWin.cpp \\r
src/debugger/exceptionvectortablebrowser.cpp \\r
src/debugger/callstackbrowser.cpp \\r
src/log.cpp \\r