Debugger UI skeleton.
This commit is contained in:
parent
8a5d3526e5
commit
969badd8c3
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Controls {
|
||||||
|
partial class BaseDocument {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "BaseDocument";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Controls {
|
||||||
|
public partial class BaseDocument : DockContent {
|
||||||
|
public BaseDocument() {
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Controls {
|
||||||
|
partial class BasePanel {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "BasePanel";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,10 +7,11 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
|
||||||
namespace Xenia.Debug.UI {
|
namespace Xenia.Debug.UI.Controls {
|
||||||
public partial class Form1 : Form {
|
public partial class BasePanel : DockContent {
|
||||||
public Form1() {
|
public BasePanel() {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,121 @@
|
||||||
|
namespace Xenia.Debug.UI {
|
||||||
|
partial class MainWindow {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow));
|
||||||
|
this.mainMenuStrip = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.mainToolStrip = new System.Windows.Forms.ToolStrip();
|
||||||
|
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.statusStrip = new System.Windows.Forms.StatusStrip();
|
||||||
|
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.mainMenuStrip.SuspendLayout();
|
||||||
|
this.mainToolStrip.SuspendLayout();
|
||||||
|
this.statusStrip.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// mainMenuStrip
|
||||||
|
//
|
||||||
|
this.mainMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.fileToolStripMenuItem});
|
||||||
|
this.mainMenuStrip.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.mainMenuStrip.Name = "mainMenuStrip";
|
||||||
|
this.mainMenuStrip.Size = new System.Drawing.Size(1571, 24);
|
||||||
|
this.mainMenuStrip.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// fileToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
||||||
|
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
||||||
|
this.fileToolStripMenuItem.Text = "&File";
|
||||||
|
//
|
||||||
|
// mainToolStrip
|
||||||
|
//
|
||||||
|
this.mainToolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.toolStripButton1});
|
||||||
|
this.mainToolStrip.Location = new System.Drawing.Point(0, 24);
|
||||||
|
this.mainToolStrip.Name = "mainToolStrip";
|
||||||
|
this.mainToolStrip.Size = new System.Drawing.Size(1571, 25);
|
||||||
|
this.mainToolStrip.TabIndex = 3;
|
||||||
|
this.mainToolStrip.Text = "toolStrip1";
|
||||||
|
//
|
||||||
|
// toolStripButton1
|
||||||
|
//
|
||||||
|
this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
|
||||||
|
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.toolStripButton1.Name = "toolStripButton1";
|
||||||
|
this.toolStripButton1.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.toolStripButton1.Text = "toolStripButton1";
|
||||||
|
//
|
||||||
|
// statusStrip
|
||||||
|
//
|
||||||
|
this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.toolStripStatusLabel1});
|
||||||
|
this.statusStrip.Location = new System.Drawing.Point(0, 1081);
|
||||||
|
this.statusStrip.Name = "statusStrip";
|
||||||
|
this.statusStrip.Size = new System.Drawing.Size(1571, 22);
|
||||||
|
this.statusStrip.TabIndex = 4;
|
||||||
|
this.statusStrip.Text = "statusStrip1";
|
||||||
|
//
|
||||||
|
// toolStripStatusLabel1
|
||||||
|
//
|
||||||
|
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
|
||||||
|
this.toolStripStatusLabel1.Size = new System.Drawing.Size(118, 17);
|
||||||
|
this.toolStripStatusLabel1.Text = "toolStripStatusLabel1";
|
||||||
|
//
|
||||||
|
// MainWindow
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(1571, 1103);
|
||||||
|
this.Controls.Add(this.statusStrip);
|
||||||
|
this.Controls.Add(this.mainToolStrip);
|
||||||
|
this.Controls.Add(this.mainMenuStrip);
|
||||||
|
this.IsMdiContainer = true;
|
||||||
|
this.MainMenuStrip = this.mainMenuStrip;
|
||||||
|
this.Name = "MainWindow";
|
||||||
|
this.Text = "Xenia Debugger";
|
||||||
|
this.mainMenuStrip.ResumeLayout(false);
|
||||||
|
this.mainMenuStrip.PerformLayout();
|
||||||
|
this.mainToolStrip.ResumeLayout(false);
|
||||||
|
this.mainToolStrip.PerformLayout();
|
||||||
|
this.statusStrip.ResumeLayout(false);
|
||||||
|
this.statusStrip.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.MenuStrip mainMenuStrip;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStrip mainToolStrip;
|
||||||
|
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
||||||
|
private System.Windows.Forms.StatusStrip statusStrip;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
|
||||||
|
private WeifenLuo.WinFormsUI.Docking.DockPanel dockPanel;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,104 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Views;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI {
|
||||||
|
public partial class MainWindow : Form {
|
||||||
|
private DeserializeDockContent deserializeDockContent;
|
||||||
|
|
||||||
|
private BreakpointsPanel breakpointsPanel;
|
||||||
|
private CallstackPanel callstackPanel;
|
||||||
|
private List<CodeDocument> codeDocuments = new List<CodeDocument>();
|
||||||
|
private FilesystemPanel filesystemPanel;
|
||||||
|
private FunctionsPanel functionsPanel;
|
||||||
|
private HeapDocument heapDocument;
|
||||||
|
private List<MemoryDocument> memoryDocuments = new List<MemoryDocument>();
|
||||||
|
private ModulesPanel modulesPanel;
|
||||||
|
private ProfilePanel profilePanel;
|
||||||
|
private List<RegistersPanel> registersPanels = new List<RegistersPanel>();
|
||||||
|
private StatisticsDocument statisticsDocument;
|
||||||
|
private ThreadsPanel threadsPanel;
|
||||||
|
private TracePanel tracePanel;
|
||||||
|
|
||||||
|
public Debugger Debugger {
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MainWindow() {
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
dockPanel = new DockPanel();
|
||||||
|
dockPanel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
dockPanel.DockBackColor = System.Drawing.SystemColors.AppWorkspace;
|
||||||
|
dockPanel.DockBottomPortion = 200D;
|
||||||
|
dockPanel.DockLeftPortion = 350D;
|
||||||
|
dockPanel.Name = "dockPanel";
|
||||||
|
Controls.Add(dockPanel);
|
||||||
|
Controls.SetChildIndex(dockPanel, 0);
|
||||||
|
|
||||||
|
this.Debugger = new Debugger();
|
||||||
|
|
||||||
|
breakpointsPanel = new BreakpointsPanel(Debugger);
|
||||||
|
callstackPanel = new CallstackPanel(Debugger);
|
||||||
|
codeDocuments.Add(new CodeDocument(Debugger));
|
||||||
|
filesystemPanel = new FilesystemPanel(Debugger);
|
||||||
|
functionsPanel = new FunctionsPanel(Debugger);
|
||||||
|
heapDocument = new HeapDocument(Debugger);
|
||||||
|
memoryDocuments.Add(new MemoryDocument(Debugger));
|
||||||
|
modulesPanel = new ModulesPanel(Debugger);
|
||||||
|
profilePanel = new ProfilePanel(Debugger);
|
||||||
|
registersPanels.Add(new RegistersPanel(Debugger, RegisterClass.GuestGeneralPurpose));
|
||||||
|
registersPanels.Add(new RegistersPanel(Debugger, RegisterClass.GuestFloatingPoint));
|
||||||
|
registersPanels.Add(new RegistersPanel(Debugger, RegisterClass.GuestVector));
|
||||||
|
statisticsDocument = new StatisticsDocument(Debugger);
|
||||||
|
threadsPanel = new ThreadsPanel(Debugger);
|
||||||
|
tracePanel = new TracePanel(Debugger);
|
||||||
|
|
||||||
|
// deserializeDockContent =
|
||||||
|
// new DeserializeDockContent(GetContentFromPersistString);
|
||||||
|
|
||||||
|
SetupDefaultLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetupDefaultLayout() {
|
||||||
|
dockPanel.SuspendLayout(true);
|
||||||
|
|
||||||
|
filesystemPanel.Show(dockPanel, DockState.DockLeft);
|
||||||
|
functionsPanel.Show(filesystemPanel.Pane, filesystemPanel);
|
||||||
|
|
||||||
|
breakpointsPanel.Show(dockPanel, DockState.DockBottom);
|
||||||
|
callstackPanel.Show(breakpointsPanel.Pane, breakpointsPanel);
|
||||||
|
|
||||||
|
modulesPanel.Show(breakpointsPanel.Pane, DockAlignment.Right, 0.5);
|
||||||
|
threadsPanel.Show(modulesPanel.Pane, modulesPanel);
|
||||||
|
|
||||||
|
registersPanels[registersPanels.Count - 1].Show(filesystemPanel.Pane,
|
||||||
|
DockAlignment.Right, 0.5);
|
||||||
|
for (int i = registersPanels.Count - 2; i >= 0; --i) {
|
||||||
|
registersPanels[i].Show(registersPanels[i + 1].Pane, registersPanels[i + 1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var codeDocument in codeDocuments) {
|
||||||
|
codeDocument.Show(dockPanel, DockState.Document);
|
||||||
|
}
|
||||||
|
|
||||||
|
heapDocument.Show(codeDocuments[0].Pane, DockAlignment.Right, 0.5);
|
||||||
|
for (int i = 0; i < memoryDocuments.Count; ++i) {
|
||||||
|
memoryDocuments[i].Show(heapDocument.Pane, heapDocument);
|
||||||
|
}
|
||||||
|
|
||||||
|
tracePanel.Show(heapDocument.Pane, DockAlignment.Bottom, 0.5);
|
||||||
|
statisticsDocument.Show(tracePanel.Pane, tracePanel);
|
||||||
|
|
||||||
|
dockPanel.ResumeLayout(true, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,148 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="mainMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="mainMenuStrip.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="mainToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>132, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||||
|
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
|
||||||
|
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
|
||||||
|
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
|
||||||
|
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
|
||||||
|
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
|
||||||
|
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
|
||||||
|
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
|
||||||
|
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
|
||||||
|
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>237, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
|
@ -9,7 +9,7 @@ namespace Xenia.Debug.UI {
|
||||||
[STAThread] static void Main() {
|
[STAThread] static void Main() {
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
Application.Run(new Form1());
|
Application.Run(new MainWindow());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class BreakpointsPanel {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Breakpoints";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class BreakpointsPanel : BasePanel {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public BreakpointsPanel(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class CallstackPanel {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Callstack";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class CallstackPanel : BasePanel {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public CallstackPanel(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class CodeDocument {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Code";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class CodeDocument : BaseDocument {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public CodeDocument(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class FilesystemPanel {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Filesystem";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class FilesystemPanel : BasePanel {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public FilesystemPanel(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class FunctionsPanel {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Functions";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class FunctionsPanel : BasePanel {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public FunctionsPanel(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class HeapDocument {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Heap";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class HeapDocument : BaseDocument {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public HeapDocument(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class MemoryDocument {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Memory";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class MemoryDocument : BaseDocument {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public MemoryDocument(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class ModulesPanel {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Modules";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class ModulesPanel : BasePanel {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public ModulesPanel(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class ProfilePanel {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Profile";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class ProfilePanel : BasePanel {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public ProfilePanel(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class RegistersPanel {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Registers";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,53 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public enum RegisterClass {
|
||||||
|
GuestGeneralPurpose,
|
||||||
|
GuestFloatingPoint,
|
||||||
|
GuestVector,
|
||||||
|
HostGeneralPurpose,
|
||||||
|
HostAvx,
|
||||||
|
}
|
||||||
|
|
||||||
|
public partial class RegistersPanel : BasePanel {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
private readonly RegisterClass registerClass;
|
||||||
|
|
||||||
|
public RegistersPanel(Debugger debugger, RegisterClass registerClass) {
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
this.debugger = debugger;
|
||||||
|
this.registerClass = registerClass;
|
||||||
|
switch (registerClass) {
|
||||||
|
case RegisterClass.GuestGeneralPurpose:
|
||||||
|
this.Text = "GPR";
|
||||||
|
break;
|
||||||
|
case RegisterClass.GuestFloatingPoint:
|
||||||
|
this.Text = "FPR";
|
||||||
|
break;
|
||||||
|
case RegisterClass.GuestVector:
|
||||||
|
this.Text = "VR";
|
||||||
|
break;
|
||||||
|
case RegisterClass.HostGeneralPurpose:
|
||||||
|
this.Text = "x64";
|
||||||
|
break;
|
||||||
|
case RegisterClass.HostAvx:
|
||||||
|
this.Text = "AVX";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
System.Diagnostics.Debug.Fail("Unhandled case: " + registerClass);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class StatisticsDocument {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Statistics";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class StatisticsDocument : BaseDocument {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public StatisticsDocument(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
partial class ThreadsPanel {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Text = "Threads";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class ThreadsPanel : BasePanel {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public ThreadsPanel(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
namespace Xenia.Debug.UI {
|
namespace Xenia.Debug.UI.Views {
|
||||||
partial class Form1 {
|
partial class TracePanel {
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Required designer variable.
|
/// Required designer variable.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -25,10 +25,9 @@
|
||||||
private void InitializeComponent() {
|
private void InitializeComponent() {
|
||||||
this.components = new System.ComponentModel.Container();
|
this.components = new System.ComponentModel.Container();
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Text = "Form1";
|
this.Text = "Trace";
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WeifenLuo.WinFormsUI.Docking;
|
||||||
|
using Xenia.Debug.UI.Controls;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.UI.Views {
|
||||||
|
public partial class TracePanel : BasePanel {
|
||||||
|
private readonly Debugger debugger;
|
||||||
|
|
||||||
|
public TracePanel(Debugger debugger) {
|
||||||
|
InitializeComponent();
|
||||||
|
this.debugger = debugger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -51,14 +51,107 @@
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Form1.cs">
|
<Compile Include="Controls\BaseDocument.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Form1.Designer.cs">
|
<Compile Include="Controls\BaseDocument.Designer.cs">
|
||||||
<DependentUpon>Form1.cs</DependentUpon>
|
<DependentUpon>BaseDocument.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Controls\BasePanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Controls\BasePanel.Designer.cs">
|
||||||
|
<DependentUpon>BasePanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="MainWindow.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="MainWindow.Designer.cs">
|
||||||
|
<DependentUpon>MainWindow.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Views\BreakpointsPanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\BreakpointsPanel.Designer.cs">
|
||||||
|
<DependentUpon>BreakpointsPanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\CallstackPanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\CallstackPanel.Designer.cs">
|
||||||
|
<DependentUpon>CallstackPanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\CodeDocument.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\CodeDocument.Designer.cs">
|
||||||
|
<DependentUpon>CodeDocument.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\FilesystemPanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\FilesystemPanel.Designer.cs">
|
||||||
|
<DependentUpon>FilesystemPanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\FunctionsPanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\FunctionsPanel.Designer.cs">
|
||||||
|
<DependentUpon>FunctionsPanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\HeapDocument.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\HeapDocument.Designer.cs">
|
||||||
|
<DependentUpon>HeapDocument.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\MemoryDocument.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\MemoryDocument.Designer.cs">
|
||||||
|
<DependentUpon>MemoryDocument.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\ModulesPanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\ModulesPanel.Designer.cs">
|
||||||
|
<DependentUpon>ModulesPanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\ProfilePanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\ProfilePanel.Designer.cs">
|
||||||
|
<DependentUpon>ProfilePanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\RegistersPanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\RegistersPanel.Designer.cs">
|
||||||
|
<DependentUpon>RegistersPanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\StatisticsDocument.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\StatisticsDocument.Designer.cs">
|
||||||
|
<DependentUpon>StatisticsDocument.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\ThreadsPanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\ThreadsPanel.Designer.cs">
|
||||||
|
<DependentUpon>ThreadsPanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\TracePanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\TracePanel.Designer.cs">
|
||||||
|
<DependentUpon>TracePanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<EmbeddedResource Include="MainWindow.resx">
|
||||||
|
<DependentUpon>MainWindow.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xenia.Debug.Utilities;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class Breakpoint : Changeable {
|
||||||
|
// type code/data/kernel
|
||||||
|
// address+[end address]
|
||||||
|
// conditions? script?
|
||||||
|
// action (suspend, trace, etc)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xenia.Debug.Utilities;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class BreakpointList : Changeable {
|
||||||
|
private readonly List<Breakpoint> breakpoints = new List<Breakpoint>();
|
||||||
|
|
||||||
|
public void Add(Breakpoint breakpoint) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Remove(Breakpoint breakpoint) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Clear() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class Callstack {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class DebugClient {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,53 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class Debugger {
|
||||||
|
public DebugClient DebugClient {
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BreakpointList BreakpointList {
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
public FunctionList FunctionList {
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
public Memory Memory {
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
public ModuleList ModuleList {
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
public ThreadList ThreadList {
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Debugger() {
|
||||||
|
this.DebugClient = new DebugClient();
|
||||||
|
|
||||||
|
this.BreakpointList = new BreakpointList();
|
||||||
|
this.FunctionList = new FunctionList();
|
||||||
|
this.Memory = new Memory();
|
||||||
|
this.ModuleList = new ModuleList();
|
||||||
|
this.ThreadList = new ThreadList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Open() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public delegate void ChangedEventHandler(EventArgs e);
|
||||||
|
|
||||||
|
public event ChangedEventHandler Changed;
|
||||||
|
|
||||||
|
private void OnChanged(EventArgs e) {
|
||||||
|
if (Changed != null) {
|
||||||
|
Changed(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xenia.Debug.Utilities;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class Function : Changeable {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xenia.Debug.Utilities;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class FunctionList : Changeable {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xenia.Debug.Utilities;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class Memory : Changeable {
|
||||||
|
public MemoryView CreateView() {
|
||||||
|
return new MemoryView(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xenia.Debug.Utilities;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class MemoryView : Changeable {
|
||||||
|
private readonly Memory memory;
|
||||||
|
|
||||||
|
public MemoryView(Memory memory) {
|
||||||
|
this.memory = memory;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xenia.Debug.Utilities;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class Module : Changeable {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xenia.Debug.Utilities;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class ModuleList : Changeable {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xenia.Debug.Utilities;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class ThreadContext {
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Thread : Changeable {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xenia.Debug.Utilities;
|
||||||
|
|
||||||
|
namespace Xenia.Debug {
|
||||||
|
public class ThreadList : Changeable {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Xenia.Debug.Utilities {
|
||||||
|
public delegate void ChangedEventHandler();
|
||||||
|
|
||||||
|
public class Changeable {
|
||||||
|
private int changeDepth;
|
||||||
|
public event ChangedEventHandler Changed;
|
||||||
|
|
||||||
|
protected void BeginChanging() {
|
||||||
|
++changeDepth;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void EndChanging() {
|
||||||
|
if (--changeDepth == 0) {
|
||||||
|
OnChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void OnChanged() {
|
||||||
|
System.Diagnostics.Debug.Assert(changeDepth == 0);
|
||||||
|
if (Changed != null) {
|
||||||
|
Changed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -43,7 +43,21 @@
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="Breakpoint.cs" />
|
||||||
|
<Compile Include="BreakpointList.cs" />
|
||||||
|
<Compile Include="Callstack.cs" />
|
||||||
|
<Compile Include="DebugClient.cs" />
|
||||||
|
<Compile Include="Debugger.cs" />
|
||||||
|
<Compile Include="Function.cs" />
|
||||||
|
<Compile Include="FunctionList.cs" />
|
||||||
|
<Compile Include="Memory.cs" />
|
||||||
|
<Compile Include="MemoryView.cs" />
|
||||||
|
<Compile Include="Module.cs" />
|
||||||
|
<Compile Include="ModuleList.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Thread.cs" />
|
||||||
|
<Compile Include="ThreadList.cs" />
|
||||||
|
<Compile Include="Utilities\Changeable.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
namespace Xenia.Debugger.Proto;
|
||||||
|
|
||||||
|
attribute "priority"; // ?
|
||||||
|
|
||||||
|
enum Foo:byte (bit_flags) {
|
||||||
|
A,
|
||||||
|
B,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct StructTest {
|
||||||
|
a:short;
|
||||||
|
b:byte;
|
||||||
|
c:Foo;
|
||||||
|
}
|
||||||
|
|
||||||
|
table TableTest {
|
||||||
|
st:StructTest;
|
||||||
|
iv:[ubyte];
|
||||||
|
name:string (required);
|
||||||
|
id:uint (required, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
union UnionTest {
|
||||||
|
TableTest,
|
||||||
|
}
|
||||||
|
|
||||||
|
root_type UnionTest;
|
Loading…
Reference in New Issue