diff --git a/GUI.NET/Config/DebuggerShortcutsConfig.cs b/GUI.NET/Config/DebuggerShortcutsConfig.cs
index bf76b82a..84443970 100644
--- a/GUI.NET/Config/DebuggerShortcutsConfig.cs
+++ b/GUI.NET/Config/DebuggerShortcutsConfig.cs
@@ -221,7 +221,7 @@ namespace Mesen.GUI.Config
return "";
} else {
string keyString = new KeysConverter().ConvertToString(keys);
- return keyString.Replace("+None", "").Replace("Oemplus", "+").Replace("Oemtilde", "Tilde").Replace("OemMinus", "-").Replace("Cancel", "Break").Replace("Escape", "Esc");
+ return keyString.Replace("+None", "").Replace("Oemcomma", ",").Replace("Oemplus", "+").Replace("Oemtilde", "Tilde").Replace("OemMinus", "-").Replace("Cancel", "Break").Replace("Escape", "Esc");
}
}
diff --git a/GUI.NET/Debugger/Controls/ctrlHexViewer.cs b/GUI.NET/Debugger/Controls/ctrlHexViewer.cs
index 0995a3da..719b7f8e 100644
--- a/GUI.NET/Debugger/Controls/ctrlHexViewer.cs
+++ b/GUI.NET/Debugger/Controls/ctrlHexViewer.cs
@@ -182,12 +182,13 @@ namespace Mesen.GUI.Debugger.Controls
int currentAddr = (int)(this.ctrlHexBox.CurrentLine - 1) * this.ctrlHexBox.BytesPerLine;
address.Address = (UInt32)currentAddr;
- frmGoToLine frm = new frmGoToLine(address, (_byteProvider.Length - 1).ToString("X").Length);
- frm.StartPosition = FormStartPosition.Manual;
- Point topLeft = this.PointToScreen(new Point(0, 0));
- frm.Location = new Point(topLeft.X + (this.Width - frm.Width) / 2, topLeft.Y + (this.Height - frm.Height) / 2);
- if(frm.ShowDialog() == DialogResult.OK) {
- GoToAddress((int)address.Address);
+ using(frmGoToLine frm = new frmGoToLine(address, (_byteProvider.Length - 1).ToString("X").Length)) {
+ frm.StartPosition = FormStartPosition.Manual;
+ Point topLeft = this.PointToScreen(new Point(0, 0));
+ frm.Location = new Point(topLeft.X + (this.Width - frm.Width) / 2, topLeft.Y + (this.Height - frm.Height) / 2);
+ if(frm.ShowDialog() == DialogResult.OK) {
+ GoToAddress((int)address.Address);
+ }
}
}
diff --git a/GUI.NET/Debugger/frmDebugger.Designer.cs b/GUI.NET/Debugger/frmDebugger.Designer.cs
index 5f687b51..52bbbab0 100644
--- a/GUI.NET/Debugger/frmDebugger.Designer.cs
+++ b/GUI.NET/Debugger/frmDebugger.Designer.cs
@@ -109,6 +109,7 @@ namespace Mesen.GUI.Debugger
this.mnuGoToResetHandler = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem23 = new System.Windows.Forms.ToolStripSeparator();
this.mnuGoToProgramCount = new System.Windows.Forms.ToolStripMenuItem();
+ this.mnuGoToAll = new System.Windows.Forms.ToolStripMenuItem();
this.mnuOptions = new System.Windows.Forms.ToolStripMenuItem();
this.mnuDisassemblyOptions = new System.Windows.Forms.ToolStripMenuItem();
this.mnuDisassemble = new System.Windows.Forms.ToolStripMenuItem();
@@ -215,7 +216,7 @@ namespace Mesen.GUI.Debugger
this.ctrlPpuMemoryMapping = new Mesen.GUI.Debugger.Controls.ctrlMemoryMapping();
this.ctrlCpuMemoryMapping = new Mesen.GUI.Debugger.Controls.ctrlMemoryMapping();
this.tsToolbar = new Mesen.GUI.Controls.ctrlMesenToolStrip();
- this.mnuGoToAll = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem29 = new System.Windows.Forms.ToolStripSeparator();
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
this.splitContainer.Panel1.SuspendLayout();
this.splitContainer.Panel2.SuspendLayout();
@@ -260,7 +261,7 @@ namespace Mesen.GUI.Debugger
this.splitContainer.Panel2.Controls.Add(this.tableLayoutPanel10);
this.splitContainer.Panel2MinSize = 100;
this.splitContainer.Size = new System.Drawing.Size(1075, 570);
- this.splitContainer.SplitterDistance = 407;
+ this.splitContainer.SplitterDistance = 404;
this.splitContainer.SplitterWidth = 7;
this.splitContainer.TabIndex = 1;
this.splitContainer.TabStop = false;
@@ -284,7 +285,7 @@ namespace Mesen.GUI.Debugger
//
this.ctrlSplitContainerTop.Panel2.Controls.Add(this.tlpFunctionLabelLists);
this.ctrlSplitContainerTop.Panel2MinSize = 150;
- this.ctrlSplitContainerTop.Size = new System.Drawing.Size(1075, 407);
+ this.ctrlSplitContainerTop.Size = new System.Drawing.Size(1075, 404);
this.ctrlSplitContainerTop.SplitterDistance = 750;
this.ctrlSplitContainerTop.SplitterWidth = 7;
this.ctrlSplitContainerTop.TabIndex = 3;
@@ -305,8 +306,8 @@ namespace Mesen.GUI.Debugger
this.tlpTop.Name = "tlpTop";
this.tlpTop.RowCount = 1;
this.tlpTop.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.tlpTop.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 407F));
- this.tlpTop.Size = new System.Drawing.Size(750, 407);
+ this.tlpTop.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 404F));
+ this.tlpTop.Size = new System.Drawing.Size(750, 404);
this.tlpTop.TabIndex = 2;
//
// panel1
@@ -317,7 +318,7 @@ namespace Mesen.GUI.Debugger
this.panel1.Location = new System.Drawing.Point(3, 0);
this.panel1.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(286, 407);
+ this.panel1.Size = new System.Drawing.Size(286, 404);
this.panel1.TabIndex = 5;
//
// ctrlSourceViewer
@@ -326,7 +327,7 @@ namespace Mesen.GUI.Debugger
this.ctrlSourceViewer.Dock = System.Windows.Forms.DockStyle.Fill;
this.ctrlSourceViewer.Location = new System.Drawing.Point(0, 0);
this.ctrlSourceViewer.Name = "ctrlSourceViewer";
- this.ctrlSourceViewer.Size = new System.Drawing.Size(286, 407);
+ this.ctrlSourceViewer.Size = new System.Drawing.Size(286, 404);
this.ctrlSourceViewer.SymbolProvider = null;
this.ctrlSourceViewer.TabIndex = 7;
this.ctrlSourceViewer.Visible = false;
@@ -339,7 +340,7 @@ namespace Mesen.GUI.Debugger
this.ctrlDebuggerCode.Location = new System.Drawing.Point(0, 0);
this.ctrlDebuggerCode.Name = "ctrlDebuggerCode";
this.ctrlDebuggerCode.ShowMemoryValues = false;
- this.ctrlDebuggerCode.Size = new System.Drawing.Size(286, 407);
+ this.ctrlDebuggerCode.Size = new System.Drawing.Size(286, 404);
this.ctrlDebuggerCode.SymbolProvider = null;
this.ctrlDebuggerCode.TabIndex = 2;
this.ctrlDebuggerCode.OnEditCode += new Mesen.GUI.Debugger.ctrlDebuggerCode.AssemblerEventHandler(this.ctrlDebuggerCode_OnEditCode);
@@ -353,7 +354,7 @@ namespace Mesen.GUI.Debugger
this.panel2.Location = new System.Drawing.Point(292, 0);
this.panel2.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
this.panel2.Name = "panel2";
- this.panel2.Size = new System.Drawing.Size(1, 407);
+ this.panel2.Size = new System.Drawing.Size(1, 404);
this.panel2.TabIndex = 6;
//
// ctrlSourceViewerSplit
@@ -362,7 +363,7 @@ namespace Mesen.GUI.Debugger
this.ctrlSourceViewerSplit.Dock = System.Windows.Forms.DockStyle.Fill;
this.ctrlSourceViewerSplit.Location = new System.Drawing.Point(0, 0);
this.ctrlSourceViewerSplit.Name = "ctrlSourceViewerSplit";
- this.ctrlSourceViewerSplit.Size = new System.Drawing.Size(1, 407);
+ this.ctrlSourceViewerSplit.Size = new System.Drawing.Size(1, 404);
this.ctrlSourceViewerSplit.SymbolProvider = null;
this.ctrlSourceViewerSplit.TabIndex = 8;
this.ctrlSourceViewerSplit.Visible = false;
@@ -375,7 +376,7 @@ namespace Mesen.GUI.Debugger
this.ctrlDebuggerCodeSplit.Location = new System.Drawing.Point(0, 0);
this.ctrlDebuggerCodeSplit.Name = "ctrlDebuggerCodeSplit";
this.ctrlDebuggerCodeSplit.ShowMemoryValues = false;
- this.ctrlDebuggerCodeSplit.Size = new System.Drawing.Size(1, 407);
+ this.ctrlDebuggerCodeSplit.Size = new System.Drawing.Size(1, 404);
this.ctrlDebuggerCodeSplit.SymbolProvider = null;
this.ctrlDebuggerCodeSplit.TabIndex = 4;
this.ctrlDebuggerCodeSplit.Visible = false;
@@ -395,7 +396,7 @@ namespace Mesen.GUI.Debugger
this.tableLayoutPanel1.RowCount = 2;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.tableLayoutPanel1.Size = new System.Drawing.Size(458, 407);
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(458, 404);
this.tableLayoutPanel1.TabIndex = 7;
//
// ctrlConsoleStatus
@@ -419,7 +420,7 @@ namespace Mesen.GUI.Debugger
this.tlpVerticalLayout.Name = "tlpVerticalLayout";
this.tlpVerticalLayout.RowCount = 1;
this.tlpVerticalLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
- this.tlpVerticalLayout.Size = new System.Drawing.Size(458, 7);
+ this.tlpVerticalLayout.Size = new System.Drawing.Size(458, 4);
this.tlpVerticalLayout.TabIndex = 4;
//
// tlpFunctionLabelLists
@@ -435,16 +436,16 @@ namespace Mesen.GUI.Debugger
this.tlpFunctionLabelLists.RowCount = 2;
this.tlpFunctionLabelLists.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tlpFunctionLabelLists.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
- this.tlpFunctionLabelLists.Size = new System.Drawing.Size(318, 407);
+ this.tlpFunctionLabelLists.Size = new System.Drawing.Size(318, 404);
this.tlpFunctionLabelLists.TabIndex = 5;
//
// grpLabels
//
this.grpLabels.Controls.Add(this.ctrlLabelList);
this.grpLabels.Dock = System.Windows.Forms.DockStyle.Fill;
- this.grpLabels.Location = new System.Drawing.Point(3, 206);
+ this.grpLabels.Location = new System.Drawing.Point(3, 205);
this.grpLabels.Name = "grpLabels";
- this.grpLabels.Size = new System.Drawing.Size(312, 198);
+ this.grpLabels.Size = new System.Drawing.Size(312, 196);
this.grpLabels.TabIndex = 6;
this.grpLabels.TabStop = false;
this.grpLabels.Text = "Labels";
@@ -454,7 +455,7 @@ namespace Mesen.GUI.Debugger
this.ctrlLabelList.Dock = System.Windows.Forms.DockStyle.Fill;
this.ctrlLabelList.Location = new System.Drawing.Point(3, 16);
this.ctrlLabelList.Name = "ctrlLabelList";
- this.ctrlLabelList.Size = new System.Drawing.Size(306, 179);
+ this.ctrlLabelList.Size = new System.Drawing.Size(306, 177);
this.ctrlLabelList.TabIndex = 0;
this.ctrlLabelList.OnFindOccurrence += new System.EventHandler(this.ctrlLabelList_OnFindOccurrence);
this.ctrlLabelList.OnLabelSelected += new System.EventHandler(this.ctrlLabelList_OnLabelSelected);
@@ -465,7 +466,7 @@ namespace Mesen.GUI.Debugger
this.grpFunctions.Dock = System.Windows.Forms.DockStyle.Fill;
this.grpFunctions.Location = new System.Drawing.Point(3, 3);
this.grpFunctions.Name = "grpFunctions";
- this.grpFunctions.Size = new System.Drawing.Size(312, 197);
+ this.grpFunctions.Size = new System.Drawing.Size(312, 196);
this.grpFunctions.TabIndex = 5;
this.grpFunctions.TabStop = false;
this.grpFunctions.Text = "Functions";
@@ -475,7 +476,7 @@ namespace Mesen.GUI.Debugger
this.ctrlFunctionList.Dock = System.Windows.Forms.DockStyle.Fill;
this.ctrlFunctionList.Location = new System.Drawing.Point(3, 16);
this.ctrlFunctionList.Name = "ctrlFunctionList";
- this.ctrlFunctionList.Size = new System.Drawing.Size(306, 178);
+ this.ctrlFunctionList.Size = new System.Drawing.Size(306, 177);
this.ctrlFunctionList.TabIndex = 0;
this.ctrlFunctionList.OnFindOccurrence += new System.EventHandler(this.ctrlFunctionList_OnFindOccurrence);
this.ctrlFunctionList.OnFunctionSelected += new System.EventHandler(this.ctrlFunctionList_OnFunctionSelected);
@@ -506,7 +507,7 @@ namespace Mesen.GUI.Debugger
this.tableLayoutPanel10.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel10.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel10.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.tableLayoutPanel10.Size = new System.Drawing.Size(1075, 156);
+ this.tableLayoutPanel10.Size = new System.Drawing.Size(1075, 159);
this.tableLayoutPanel10.TabIndex = 0;
//
// grpWatch
@@ -515,7 +516,7 @@ namespace Mesen.GUI.Debugger
this.grpWatch.Dock = System.Windows.Forms.DockStyle.Fill;
this.grpWatch.Location = new System.Drawing.Point(3, 3);
this.grpWatch.Name = "grpWatch";
- this.grpWatch.Size = new System.Drawing.Size(352, 150);
+ this.grpWatch.Size = new System.Drawing.Size(352, 153);
this.grpWatch.TabIndex = 2;
this.grpWatch.TabStop = false;
this.grpWatch.Text = "Watch";
@@ -525,7 +526,7 @@ namespace Mesen.GUI.Debugger
this.ctrlWatch.Dock = System.Windows.Forms.DockStyle.Fill;
this.ctrlWatch.Location = new System.Drawing.Point(3, 16);
this.ctrlWatch.Name = "ctrlWatch";
- this.ctrlWatch.Size = new System.Drawing.Size(346, 131);
+ this.ctrlWatch.Size = new System.Drawing.Size(346, 134);
this.ctrlWatch.TabIndex = 0;
//
// grpBreakpoints
@@ -534,7 +535,7 @@ namespace Mesen.GUI.Debugger
this.grpBreakpoints.Dock = System.Windows.Forms.DockStyle.Fill;
this.grpBreakpoints.Location = new System.Drawing.Point(361, 3);
this.grpBreakpoints.Name = "grpBreakpoints";
- this.grpBreakpoints.Size = new System.Drawing.Size(352, 150);
+ this.grpBreakpoints.Size = new System.Drawing.Size(352, 153);
this.grpBreakpoints.TabIndex = 3;
this.grpBreakpoints.TabStop = false;
this.grpBreakpoints.Text = "Breakpoints";
@@ -544,7 +545,7 @@ namespace Mesen.GUI.Debugger
this.ctrlBreakpoints.Dock = System.Windows.Forms.DockStyle.Fill;
this.ctrlBreakpoints.Location = new System.Drawing.Point(3, 16);
this.ctrlBreakpoints.Name = "ctrlBreakpoints";
- this.ctrlBreakpoints.Size = new System.Drawing.Size(346, 131);
+ this.ctrlBreakpoints.Size = new System.Drawing.Size(346, 134);
this.ctrlBreakpoints.TabIndex = 0;
this.ctrlBreakpoints.BreakpointNavigation += new System.EventHandler(this.ctrlBreakpoints_BreakpointNavigation);
//
@@ -554,7 +555,7 @@ namespace Mesen.GUI.Debugger
this.grpCallstack.Dock = System.Windows.Forms.DockStyle.Fill;
this.grpCallstack.Location = new System.Drawing.Point(719, 3);
this.grpCallstack.Name = "grpCallstack";
- this.grpCallstack.Size = new System.Drawing.Size(353, 150);
+ this.grpCallstack.Size = new System.Drawing.Size(353, 153);
this.grpCallstack.TabIndex = 4;
this.grpCallstack.TabStop = false;
this.grpCallstack.Text = "Call Stack";
@@ -564,7 +565,7 @@ namespace Mesen.GUI.Debugger
this.ctrlCallstack.Dock = System.Windows.Forms.DockStyle.Fill;
this.ctrlCallstack.Location = new System.Drawing.Point(3, 16);
this.ctrlCallstack.Name = "ctrlCallstack";
- this.ctrlCallstack.Size = new System.Drawing.Size(347, 131);
+ this.ctrlCallstack.Size = new System.Drawing.Size(347, 134);
this.ctrlCallstack.TabIndex = 0;
this.ctrlCallstack.FunctionSelected += new System.EventHandler(this.ctrlCallstack_FunctionSelected);
//
@@ -914,13 +915,14 @@ namespace Mesen.GUI.Debugger
// searchToolStripMenuItem
//
this.searchToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.mnuGoToAll,
+ this.toolStripMenuItem29,
this.mnuFind,
this.mnuFindNext,
this.mnuFindPrev,
this.toolStripMenuItem9,
this.mnuFindAllOccurrences,
- this.mnuGoTo,
- this.mnuGoToAll});
+ this.mnuGoTo});
this.searchToolStripMenuItem.Name = "searchToolStripMenuItem";
this.searchToolStripMenuItem.Size = new System.Drawing.Size(54, 20);
this.searchToolStripMenuItem.Text = "Search";
@@ -1021,6 +1023,13 @@ namespace Mesen.GUI.Debugger
this.mnuGoToProgramCount.Text = "Program Counter";
this.mnuGoToProgramCount.Click += new System.EventHandler(this.mnuGoToProgramCount_Click);
//
+ // mnuGoToAll
+ //
+ this.mnuGoToAll.Name = "mnuGoToAll";
+ this.mnuGoToAll.Size = new System.Drawing.Size(183, 22);
+ this.mnuGoToAll.Text = "Go to All";
+ this.mnuGoToAll.Click += new System.EventHandler(this.mnuGoToAll_Click);
+ //
// mnuOptions
//
this.mnuOptions.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -1906,12 +1915,10 @@ namespace Mesen.GUI.Debugger
this.tsToolbar.Text = "toolStrip1";
this.tsToolbar.Visible = false;
//
- // mnuGoToAll
+ // toolStripMenuItem29
//
- this.mnuGoToAll.Name = "mnuGoToAll";
- this.mnuGoToAll.Size = new System.Drawing.Size(183, 22);
- this.mnuGoToAll.Text = "Go to All";
- this.mnuGoToAll.Click += new System.EventHandler(this.mnuGoToAll_Click);
+ this.toolStripMenuItem29.Name = "toolStripMenuItem29";
+ this.toolStripMenuItem29.Size = new System.Drawing.Size(180, 6);
//
// frmDebugger
//
@@ -2149,5 +2156,6 @@ namespace Mesen.GUI.Debugger
private System.Windows.Forms.ToolStripMenuItem mnuEnableSubInstructionBreakpoints;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem28;
private System.Windows.Forms.ToolStripMenuItem mnuGoToAll;
+ private System.Windows.Forms.ToolStripSeparator toolStripMenuItem29;
}
}
\ No newline at end of file
diff --git a/GUI.NET/Debugger/frmDebugger.cs b/GUI.NET/Debugger/frmDebugger.cs
index c105e1bd..d1550318 100644
--- a/GUI.NET/Debugger/frmDebugger.cs
+++ b/GUI.NET/Debugger/frmDebugger.cs
@@ -1730,7 +1730,7 @@ namespace Mesen.GUI.Debugger
private void mnuGoToAll_Click(object sender, EventArgs e)
{
- using(frmGoToAll frm = new frmGoToAll()) {
+ using(frmGoToAll frm = new frmGoToAll(false, true)) {
if(frm.ShowDialog() == DialogResult.OK) {
frmGoToAll.GoToDestination dest = frm.Destination;
diff --git a/GUI.NET/Debugger/frmDebugger.resx b/GUI.NET/Debugger/frmDebugger.resx
index cf509991..7435e7b0 100644
--- a/GUI.NET/Debugger/frmDebugger.resx
+++ b/GUI.NET/Debugger/frmDebugger.resx
@@ -121,12 +121,12 @@
17, 17
- 17, 56
+ 107, 17
- 17, 95
+ 215, 17
- 17, 134
+ 324, 17
\ No newline at end of file
diff --git a/GUI.NET/Debugger/frmGoToAll.cs b/GUI.NET/Debugger/frmGoToAll.cs
index ee1b8da8..4583de0e 100644
--- a/GUI.NET/Debugger/frmGoToAll.cs
+++ b/GUI.NET/Debugger/frmGoToAll.cs
@@ -21,14 +21,18 @@ namespace Mesen.GUI.Debugger
private int _selectedResult = 0;
private int _resultCount = 0;
private Ld65DbgImporter _symbolProvider;
+ private bool _allowOutOfScope;
+ private bool _showFilesAndConstants;
public GoToDestination Destination { get; private set; }
- public frmGoToAll()
+ public frmGoToAll(bool allowOutOfScope, bool showFilesAndConstants)
{
InitializeComponent();
_symbolProvider = DebugWorkspaceManager.SymbolProvider;
+ _allowOutOfScope = allowOutOfScope;
+ _showFilesAndConstants = showFilesAndConstants;
tlpResults.SuspendLayout();
for(int i = 0; i < MaxResultCount; i++) {
@@ -130,18 +134,20 @@ namespace Mesen.GUI.Debugger
if(!string.IsNullOrWhiteSpace(searchString)) {
if(_symbolProvider != null) {
- foreach(Ld65DbgImporter.FileInfo file in _symbolProvider.Files.Values) {
- if(file.Name.ToLower().Contains(searchString)) {
- searchResults.Add(new SearchResultInfo() {
- Caption = Path.GetFileName(file.Name),
- AbsoluteAddress = -1,
- MemoryType = AddressType.InternalRam,
- SearchResultType = SearchResultType.File,
- Filename = file.Name,
- FileLineNumber = 0,
- RelativeAddress = -1,
- CodeLabel = null
- });
+ if(_showFilesAndConstants) {
+ foreach(Ld65DbgImporter.FileInfo file in _symbolProvider.Files.Values) {
+ if(file.Name.ToLower().Contains(searchString)) {
+ searchResults.Add(new SearchResultInfo() {
+ Caption = Path.GetFileName(file.Name),
+ AbsoluteAddress = -1,
+ MemoryType = AddressType.InternalRam,
+ SearchResultType = SearchResultType.File,
+ Filename = file.Name,
+ FileLineNumber = 0,
+ RelativeAddress = -1,
+ CodeLabel = null
+ });
+ }
}
}
@@ -152,6 +158,10 @@ namespace Mesen.GUI.Debugger
int value = 0;
int relAddress = -1;
bool isConstant = addressInfo == null;
+ if(!_showFilesAndConstants && isConstant) {
+ continue;
+ }
+
if(addressInfo != null) {
value = InteropEmu.DebugGetMemoryValue(addressInfo.Type.ToMemoryType(), (uint)addressInfo.Address);
relAddress = InteropEmu.DebugGetRelativeAddress((uint)addressInfo.Address, addressInfo.Type);
@@ -201,7 +211,7 @@ namespace Mesen.GUI.Debugger
MemoryType = label.AddressType,
SearchResultType = resultType,
Filename = "",
- Disabled = relativeAddress < 0,
+ Disabled = !_allowOutOfScope && relativeAddress < 0,
RelativeAddress = relativeAddress,
CodeLabel = label
});
@@ -275,7 +285,14 @@ namespace Mesen.GUI.Debugger
if(_resultCount > 0) {
SearchResultInfo searchResult = _results[_selectedResult].Tag as SearchResultInfo;
if(!searchResult.Disabled) {
- Destination = new GoToDestination() { Label = searchResult.CodeLabel, File = searchResult.Filename, Line = searchResult.FileLineNumber };
+ AddressTypeInfo addressInfo = new AddressTypeInfo() { Address = searchResult.AbsoluteAddress, Type = searchResult.MemoryType };
+ Destination = new GoToDestination() {
+ AddressInfo = addressInfo,
+ CpuAddress = addressInfo.Address >= 0 ? InteropEmu.DebugGetRelativeAddress((UInt32)addressInfo.Address, addressInfo.Type) : -1,
+ Label = searchResult.CodeLabel,
+ File = searchResult.Filename,
+ Line = searchResult.FileLineNumber
+ };
DialogResult = DialogResult.OK;
Close();
}
@@ -285,6 +302,7 @@ namespace Mesen.GUI.Debugger
public struct GoToDestination
{
public CodeLabel Label;
+ public AddressTypeInfo AddressInfo;
public int CpuAddress;
public string File;
public int Line;
diff --git a/GUI.NET/Debugger/frmMemoryViewer.Designer.cs b/GUI.NET/Debugger/frmMemoryViewer.Designer.cs
index 467f2e44..bda726d2 100644
--- a/GUI.NET/Debugger/frmMemoryViewer.Designer.cs
+++ b/GUI.NET/Debugger/frmMemoryViewer.Designer.cs
@@ -107,6 +107,8 @@
this.ctrlMemoryAccessCounters = new Mesen.GUI.Debugger.Controls.ctrlMemoryAccessCounters();
this.tpgProfiler = new System.Windows.Forms.TabPage();
this.ctrlProfiler = new Mesen.GUI.Debugger.Controls.ctrlProfiler();
+ this.mnuGoToAll = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator();
this.flowLayoutPanel1.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.tabMain.SuspendLayout();
@@ -656,10 +658,12 @@
// toolStripMenuItem1
//
this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.mnuGoToAll,
+ this.mnuGoTo,
+ this.toolStripMenuItem14,
this.mnuFind,
this.mnuFindNext,
- this.mnuFindPrev,
- this.mnuGoTo});
+ this.mnuFindPrev});
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
this.toolStripMenuItem1.Size = new System.Drawing.Size(54, 20);
this.toolStripMenuItem1.Text = "Search";
@@ -668,7 +672,7 @@
//
this.mnuFind.Image = global::Mesen.GUI.Properties.Resources.Find;
this.mnuFind.Name = "mnuFind";
- this.mnuFind.Size = new System.Drawing.Size(145, 22);
+ this.mnuFind.Size = new System.Drawing.Size(152, 22);
this.mnuFind.Text = "Find...";
this.mnuFind.Click += new System.EventHandler(this.mnuFind_Click);
//
@@ -676,7 +680,7 @@
//
this.mnuFindNext.Image = global::Mesen.GUI.Properties.Resources.NextArrow;
this.mnuFindNext.Name = "mnuFindNext";
- this.mnuFindNext.Size = new System.Drawing.Size(145, 22);
+ this.mnuFindNext.Size = new System.Drawing.Size(152, 22);
this.mnuFindNext.Text = "Find Next";
this.mnuFindNext.Click += new System.EventHandler(this.mnuFindNext_Click);
//
@@ -684,14 +688,14 @@
//
this.mnuFindPrev.Image = global::Mesen.GUI.Properties.Resources.PreviousArrow;
this.mnuFindPrev.Name = "mnuFindPrev";
- this.mnuFindPrev.Size = new System.Drawing.Size(145, 22);
+ this.mnuFindPrev.Size = new System.Drawing.Size(152, 22);
this.mnuFindPrev.Text = "Find Previous";
this.mnuFindPrev.Click += new System.EventHandler(this.mnuFindPrev_Click);
//
// mnuGoTo
//
this.mnuGoTo.Name = "mnuGoTo";
- this.mnuGoTo.Size = new System.Drawing.Size(145, 22);
+ this.mnuGoTo.Size = new System.Drawing.Size(152, 22);
this.mnuGoTo.Text = "Go To...";
this.mnuGoTo.Click += new System.EventHandler(this.mnuGoTo_Click);
//
@@ -772,6 +776,18 @@
this.ctrlProfiler.Size = new System.Drawing.Size(606, 343);
this.ctrlProfiler.TabIndex = 0;
//
+ // mnuGoToAll
+ //
+ this.mnuGoToAll.Name = "mnuGoToAll";
+ this.mnuGoToAll.Size = new System.Drawing.Size(152, 22);
+ this.mnuGoToAll.Text = "Go to All";
+ this.mnuGoToAll.Click += new System.EventHandler(this.mnuGoToAll_Click);
+ //
+ // toolStripMenuItem14
+ //
+ this.toolStripMenuItem14.Name = "toolStripMenuItem14";
+ this.toolStripMenuItem14.Size = new System.Drawing.Size(149, 6);
+ //
// frmMemoryViewer
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -876,5 +892,7 @@
private System.Windows.Forms.ToolStripMenuItem mnuSelectFont;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem13;
private System.Windows.Forms.ToolStripMenuItem mnuByteEditingMode;
+ private System.Windows.Forms.ToolStripMenuItem mnuGoToAll;
+ private System.Windows.Forms.ToolStripSeparator toolStripMenuItem14;
}
}
\ No newline at end of file
diff --git a/GUI.NET/Debugger/frmMemoryViewer.cs b/GUI.NET/Debugger/frmMemoryViewer.cs
index 03138879..3c75ad3a 100644
--- a/GUI.NET/Debugger/frmMemoryViewer.cs
+++ b/GUI.NET/Debugger/frmMemoryViewer.cs
@@ -35,6 +35,8 @@ namespace Mesen.GUI.Debugger
{
base.OnLoad(e);
+ DebugWorkspaceManager.AutoLoadDbgFiles(true);
+
this._selectedTab = this.tabMain.SelectedTab;
DebugInfo config = ConfigManager.Config.DebugInfo;
@@ -129,6 +131,7 @@ namespace Mesen.GUI.Debugger
mnuRefresh.InitShortcut(this, nameof(DebuggerShortcutsConfig.Refresh));
+ mnuGoToAll.InitShortcut(this, nameof(DebuggerShortcutsConfig.GoToAll));
mnuGoTo.InitShortcut(this, nameof(DebuggerShortcutsConfig.GoTo));
mnuFind.InitShortcut(this, nameof(DebuggerShortcutsConfig.Find));
mnuFindNext.InitShortcut(this, nameof(DebuggerShortcutsConfig.FindNext));
@@ -197,7 +200,30 @@ namespace Mesen.GUI.Debugger
cboMemoryType.SetEnumValue(memoryType);
ctrlHexViewer.GoToAddress(address);
}
-
+
+ public void GoToAll()
+ {
+ using(frmGoToAll frm = new frmGoToAll(true, false)) {
+ if(frm.ShowDialog() == DialogResult.OK) {
+ frmGoToAll.GoToDestination dest = frm.Destination;
+
+ tabMain.SelectedTab = tpgMemoryViewer;
+ if(_memoryType == DebugMemoryType.CpuMemory && dest.CpuAddress >= 0) {
+ ctrlHexViewer.GoToAddress(dest.CpuAddress);
+ } else {
+ DebugMemoryType memType = dest.AddressInfo.Type.ToMemoryType();
+ if(memType == DebugMemoryType.InternalRam) {
+ //There is no specific "tab" for the internal ram, show it in the cpu memory tab
+ memType = DebugMemoryType.CpuMemory;
+ }
+
+ cboMemoryType.SetEnumValue(memType);
+ ctrlHexViewer.GoToAddress(dest.AddressInfo.Address);
+ }
+ }
+ }
+ }
+
private void InitTblMappings()
{
DebugWorkspace workspace = DebugWorkspaceManager.GetWorkspace();
@@ -353,6 +379,11 @@ namespace Mesen.GUI.Debugger
this.ctrlHexViewer.GoToAddress();
}
+ private void mnuGoToAll_Click(object sender, EventArgs e)
+ {
+ this.GoToAll();
+ }
+
private void mnuIncreaseFontSize_Click(object sender, EventArgs e)
{
this.ctrlHexViewer.TextZoom += 10;