Debugger: Added option to show comments in label list

This commit is contained in:
Sour 2018-03-25 15:51:04 -04:00
parent 41cef15c2f
commit 7d15e1daf2
3 changed files with 52 additions and 16 deletions

View file

@ -104,6 +104,8 @@ namespace Mesen.GUI.Config
public bool ShowVerifiedData = false; public bool ShowVerifiedData = false;
public bool ShowUnidentifiedData = false; public bool ShowUnidentifiedData = false;
public bool ShowCommentsInLabelList = true;
public bool SplitView = false; public bool SplitView = false;
public bool HexDisplay = true; public bool HexDisplay = true;
public bool ShowBreakpointLabels = true; public bool ShowBreakpointLabels = true;

View file

@ -35,12 +35,14 @@
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
this.mnuAddBreakpoint = new System.Windows.Forms.ToolStripMenuItem(); this.mnuAddBreakpoint = new System.Windows.Forms.ToolStripMenuItem();
this.mnuAddToWatch = new System.Windows.Forms.ToolStripMenuItem(); this.mnuAddToWatch = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
this.mnuFindOccurrences = new System.Windows.Forms.ToolStripMenuItem(); this.mnuFindOccurrences = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
this.mnuShowComments = new System.Windows.Forms.ToolStripMenuItem();
this.lstLabels = new Mesen.GUI.Controls.DoubleBufferedListView(); this.lstLabels = new Mesen.GUI.Controls.DoubleBufferedListView();
this.colFunctionLabel = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.colFunctionLabel = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colFunctionAddress = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.colFunctionAddress = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colMemoryAddress = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.colMemoryAddress = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colComment = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.contextMenu.SuspendLayout(); this.contextMenu.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
@ -53,10 +55,11 @@
this.toolStripMenuItem1, this.toolStripMenuItem1,
this.mnuAddBreakpoint, this.mnuAddBreakpoint,
this.mnuAddToWatch, this.mnuAddToWatch,
this.mnuFindOccurrences,
this.toolStripMenuItem2, this.toolStripMenuItem2,
this.mnuFindOccurrences}); this.mnuShowComments});
this.contextMenu.Name = "contextMenu"; this.contextMenu.Name = "contextMenu";
this.contextMenu.Size = new System.Drawing.Size(167, 148); this.contextMenu.Size = new System.Drawing.Size(167, 170);
// //
// mnuAdd // mnuAdd
// //
@ -103,11 +106,6 @@
this.mnuAddToWatch.Text = "Add to watch"; this.mnuAddToWatch.Text = "Add to watch";
this.mnuAddToWatch.Click += new System.EventHandler(this.mnuAddToWatch_Click); this.mnuAddToWatch.Click += new System.EventHandler(this.mnuAddToWatch_Click);
// //
// toolStripMenuItem2
//
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.Size = new System.Drawing.Size(163, 6);
//
// mnuFindOccurrences // mnuFindOccurrences
// //
this.mnuFindOccurrences.Image = global::Mesen.GUI.Properties.Resources.Find; this.mnuFindOccurrences.Image = global::Mesen.GUI.Properties.Resources.Find;
@ -116,12 +114,26 @@
this.mnuFindOccurrences.Text = "Find Occurrences"; this.mnuFindOccurrences.Text = "Find Occurrences";
this.mnuFindOccurrences.Click += new System.EventHandler(this.mnuFindOccurrences_Click); this.mnuFindOccurrences.Click += new System.EventHandler(this.mnuFindOccurrences_Click);
// //
// toolStripMenuItem2
//
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.Size = new System.Drawing.Size(163, 6);
//
// mnuShowComments
//
this.mnuShowComments.CheckOnClick = true;
this.mnuShowComments.Name = "mnuShowComments";
this.mnuShowComments.Size = new System.Drawing.Size(166, 22);
this.mnuShowComments.Text = "Show Comments";
this.mnuShowComments.Click += new System.EventHandler(this.mnuShowComments_Click);
//
// lstLabels // lstLabels
// //
this.lstLabels.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.lstLabels.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.colFunctionLabel, this.colFunctionLabel,
this.colFunctionAddress, this.colFunctionAddress,
this.colMemoryAddress}); this.colMemoryAddress,
this.colComment});
this.lstLabels.ContextMenuStrip = this.contextMenu; this.lstLabels.ContextMenuStrip = this.contextMenu;
this.lstLabels.Dock = System.Windows.Forms.DockStyle.Fill; this.lstLabels.Dock = System.Windows.Forms.DockStyle.Fill;
this.lstLabels.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lstLabels.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@ -130,7 +142,7 @@
this.lstLabels.HideSelection = false; this.lstLabels.HideSelection = false;
this.lstLabels.Location = new System.Drawing.Point(0, 0); this.lstLabels.Location = new System.Drawing.Point(0, 0);
this.lstLabels.Name = "lstLabels"; this.lstLabels.Name = "lstLabels";
this.lstLabels.Size = new System.Drawing.Size(275, 112); this.lstLabels.Size = new System.Drawing.Size(341, 112);
this.lstLabels.TabIndex = 2; this.lstLabels.TabIndex = 2;
this.lstLabels.UseCompatibleStateImageBehavior = false; this.lstLabels.UseCompatibleStateImageBehavior = false;
this.lstLabels.View = System.Windows.Forms.View.Details; this.lstLabels.View = System.Windows.Forms.View.Details;
@ -152,13 +164,17 @@
this.colMemoryAddress.Text = "ROM Addr"; this.colMemoryAddress.Text = "ROM Addr";
this.colMemoryAddress.Width = 84; this.colMemoryAddress.Width = 84;
// //
// colComment
//
this.colComment.Text = "Comment";
//
// ctrlLabelList // ctrlLabelList
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.lstLabels); this.Controls.Add(this.lstLabels);
this.Name = "ctrlLabelList"; this.Name = "ctrlLabelList";
this.Size = new System.Drawing.Size(275, 112); this.Size = new System.Drawing.Size(341, 112);
this.contextMenu.ResumeLayout(false); this.contextMenu.ResumeLayout(false);
this.ResumeLayout(false); this.ResumeLayout(false);
@ -179,5 +195,7 @@
private System.Windows.Forms.ToolStripMenuItem mnuAddBreakpoint; private System.Windows.Forms.ToolStripMenuItem mnuAddBreakpoint;
private System.Windows.Forms.ToolStripMenuItem mnuAddToWatch; private System.Windows.Forms.ToolStripMenuItem mnuAddToWatch;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2;
private System.Windows.Forms.ColumnHeader colComment;
private System.Windows.Forms.ToolStripMenuItem mnuShowComments;
} }
} }

View file

@ -31,11 +31,12 @@ namespace Mesen.GUI.Debugger.Controls
public int Compare(object x, object y) public int Compare(object x, object y)
{ {
if(_sortOrder) { int result = String.Compare(((ListViewItem)x).SubItems[_columnIndex].Text, ((ListViewItem)y).SubItems[_columnIndex].Text);
return String.Compare(((ListViewItem)y).SubItems[_columnIndex].Text, ((ListViewItem)x).SubItems[_columnIndex].Text); if(result == 0 && (_columnIndex == 0 || _columnIndex == 3)) {
} else { result = String.Compare(((ListViewItem)x).SubItems[2].Text, ((ListViewItem)y).SubItems[2].Text);
return String.Compare(((ListViewItem)x).SubItems[_columnIndex].Text, ((ListViewItem)y).SubItems[_columnIndex].Text);
} }
return result * (_sortOrder ? -1 : 1);
} }
} }
@ -47,6 +48,7 @@ namespace Mesen.GUI.Debugger.Controls
bool designMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime); bool designMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime);
if(!designMode) { if(!designMode) {
this.InitShortcuts(); this.InitShortcuts();
mnuShowComments.Checked = ConfigManager.Config.DebugInfo.ShowCommentsInLabelList;
} }
} }
@ -113,7 +115,7 @@ namespace Mesen.GUI.Debugger.Controls
List<CodeLabel> labels = LabelManager.GetLabels(); List<CodeLabel> labels = LabelManager.GetLabels();
List<ListViewItem> items = new List<ListViewItem>(labels.Count); List<ListViewItem> items = new List<ListViewItem>(labels.Count);
foreach(CodeLabel label in labels) { foreach(CodeLabel label in labels) {
if(label.Label.Length > 0) { if(label.Label.Length > 0 || ConfigManager.Config.DebugInfo.ShowCommentsInLabelList) {
ListViewItem item = new ListViewItem(label.Label); ListViewItem item = new ListViewItem(label.Label);
Int32 relativeAddress = label.GetRelativeAddress(); Int32 relativeAddress = label.GetRelativeAddress();
@ -134,6 +136,7 @@ namespace Mesen.GUI.Debugger.Controls
} }
absAddress += "$" + label.Address.ToString("X4"); absAddress += "$" + label.Address.ToString("X4");
item.SubItems.Add(absAddress); item.SubItems.Add(absAddress);
item.SubItems.Add(ConfigManager.Config.DebugInfo.ShowCommentsInLabelList ? label.Comment : "");
item.SubItems[1].Tag = label; item.SubItems[1].Tag = label;
item.Tag = relativeAddress; item.Tag = relativeAddress;
@ -145,6 +148,12 @@ namespace Mesen.GUI.Debugger.Controls
lstLabels.Items.Clear(); lstLabels.Items.Clear();
lstLabels.Items.AddRange(items.ToArray()); lstLabels.Items.AddRange(items.ToArray());
lstLabels.Sort(); lstLabels.Sort();
colComment.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
if(!ConfigManager.Config.DebugInfo.ShowCommentsInLabelList) {
colComment.Width = 0;
}
lstLabels.EndUpdate(); lstLabels.EndUpdate();
_listItems = items; _listItems = items;
@ -270,5 +279,12 @@ namespace Mesen.GUI.Debugger.Controls
WatchManager.AddWatch("[" + label.Label + "]"); WatchManager.AddWatch("[" + label.Label + "]");
} }
} }
private void mnuShowComments_Click(object sender, EventArgs e)
{
ConfigManager.Config.DebugInfo.ShowCommentsInLabelList = mnuShowComments.Checked;
ConfigManager.ApplyChanges();
this.UpdateLabelList();
}
} }
} }