Skip to content

Commit

Permalink
Feature #828, #827 (#829)
Browse files Browse the repository at this point in the history
* Feature #828

* Feature #827
  • Loading branch information
tgiphil committed Jan 10, 2021
1 parent e63aca1 commit ba8f7d6
Show file tree
Hide file tree
Showing 95 changed files with 1,441 additions and 694 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="OptimizedPriorityQueue" Version="5.0.0" />
<PackageReference Include="System.Runtime" Version="4.3.1" />
<PackageReference Include="System.Threading.Channels" Version="5.0.0" />
</ItemGroup>
<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions Source/Mosa.Tool.Debugger/ConnectWindow.resx
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,9 @@
<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>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral</value>
</resheader>
</root>
4 changes: 2 additions & 2 deletions Source/Mosa.Tool.Debugger/DebugAppLocationsWindow.resx
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,9 @@
<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>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral</value>
</resheader>
</root>
55 changes: 51 additions & 4 deletions Source/Mosa.Tool.Debugger/DebugDockContent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,47 @@ public DebugDockContent(MainForm mainForm) : this()
public bool IsRunning { get { return GDBConnector.IsRunning; } }
public bool IsPaused { get { return GDBConnector.IsPaused; } }

public ulong InstructionPointer { get { return MainForm.InstructionPointer; } }
public ulong StackFrame { get { return MainForm.StackFrame; } }
public ulong StackPointer { get { return MainForm.StackPointer; } }
public ulong StatusFlag { get { return MainForm.StatusFlag; } }
public bool IsDockUpdatable { get; set; } = true;

public ulong InstructionPointer { get; set; }
public ulong StackFrame { get; set; }
public ulong StackPointer { get; set; }
public ulong StatusFlag { get; set; }

protected bool IsReady
{
get
{
if (!IsConnected)
return false;

if (Platform == null)
return false;

if (Platform.Registers == null)
return false;

return true;
}
}

public void UpdateDockFocus()
{
if (!IsDockUpdatable)
return;

InstructionPointer = MainForm.InstructionPointer;
StackFrame = MainForm.StackFrame;
StackPointer = MainForm.StackPointer;
StatusFlag = MainForm.StatusFlag;
}

public virtual void OnPause()
{
if (IsReady)
UpdateDisplay();
else
ClearDisplay();
}

public virtual void OnRunning()
Expand All @@ -56,5 +90,18 @@ public virtual void OnBreakpointChange()
public virtual void OnWatchChange()
{
}

protected virtual void UpdateDisplay()
{
}

protected virtual void ClearDisplay()
{
}

public static string ToHex(ulong address)
{
return $"0x{address.ToString((address <= uint.MaxValue) ? "X4" : "X8")}"; ;
}
}
}
4 changes: 2 additions & 2 deletions Source/Mosa.Tool.Debugger/DebugDockContent.resx
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,9 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral</value>
</resheader>
</root>
36 changes: 32 additions & 4 deletions Source/Mosa.Tool.Debugger/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,8 @@ public MainForm()
//scriptView = new ScriptView(this);

sourceView = new SourceView(this);
sourceDataView = new SourceDataView(this);

//sourceDataView = new SourceDataView(this); // only useful when debugging this tool

launchView = new LaunchView(this);

Expand Down Expand Up @@ -208,7 +209,8 @@ private void MainForm_Load(object sender, EventArgs e)
stackFrameView.Show(registersView.Pane, DockAlignment.Bottom, 0.5);

sourceView.Show(dockPanel, DockState.Document);
sourceDataView.Show(dockPanel, DockState.Document);

//sourceDataView.Show(dockPanel, DockState.Document);

var memoryView = new MemoryView(this);
memoryView.Show(dockPanel, DockState.Document);
Expand Down Expand Up @@ -261,6 +263,7 @@ private void NotifyPause()
{
if (dock.DockHandler.Content is DebugDockContent debugdock)
{
debugdock.UpdateDockFocus();
debugdock.OnPause();
}
}
Expand Down Expand Up @@ -342,7 +345,7 @@ private void Connect()

if (!GDBConnector.IsConnected)
{
MessageBox.Show($"Could not connect to '{GDBConnector.ConnectionHost}' on port {GDBConnector.ConnectionPort.ToString()}.");
MessageBox.Show($"Could not connect to '{GDBConnector.ConnectionHost}' on port {GDBConnector.ConnectionPort}.");
return;
}

Expand Down Expand Up @@ -803,8 +806,33 @@ public static string CalculateFileHash(string filename)
}
}

private void toolStripButton3_Click(object sender, EventArgs e)
public void SetFocus(ulong instructionPointer, ulong stackFrame, ulong stackPointer)
{
sourceView.InstructionPointer = instructionPointer;
sourceView.StackFrame = stackFrame;
sourceView.StackPointer = stackPointer;

methodView.InstructionPointer = instructionPointer;
methodView.StackFrame = stackFrame;
methodView.StackPointer = stackPointer;

instructionView.InstructionPointer = instructionPointer;
instructionView.StackFrame = stackFrame;
instructionView.StackPointer = stackPointer;

methodParametersView.InstructionPointer = instructionPointer;
methodParametersView.StackFrame = stackFrame;
methodParametersView.StackPointer = stackPointer;

stackFrameView.InstructionPointer = instructionPointer;
stackFrameView.StackFrame = stackFrame;
stackFrameView.StackPointer = stackPointer;

methodView.OnPause();
instructionView.OnPause();
sourceView.OnPause();
methodParametersView.OnPause();
stackFrameView.OnPause();
}
}
}
64 changes: 34 additions & 30 deletions Source/Mosa.Tool.Debugger/MainForm.designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

59 changes: 4 additions & 55 deletions Source/Mosa.Tool.Debugger/MainForm.resx
Original file line number Diff line number Diff line change
Expand Up @@ -117,70 +117,19 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral">
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>169, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral" />
<data name="btnConnect.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAUkSURBVFhH5VdLTFRnFGbR3E3TGDaz6spNN01aLUqQKlKl
aRdNmtq0C6L1ER+VapGH8ponMMCAgkCtD2wiBRtFGJn3MMAwzOALUbSiVKOolQ6OiAyvEVC+nnOHqVja
tDNSNj3Jl//ef/57v3PO/50z/w37v5lQ/v0hnKw9baHr1/xT82dCcdl30BnMKC4tB92/4Z+eHxOK9u6H
q+0ceKT7CMIC8Zf/0IS8Ag3UBYUiurtviiPNLye8yb/zolcx4ctiO9YUNeGzl9CMT/c5oMlRwtPXh+vX
uyFX5UKlLphb8qgsPW6OAl1e4NogjQHQ/Y0R4OP8Zty61glXaysMJjOU5AQ9t5CfFd8QogkxShOisnT4
ZRjYdwkoagf2tk+9wEWghObLrgLv7NHDqtfiePVxyBRKdkDif01oJqwkckev74HuZ2/Puyk16PAA6rOT
yDszjnzG2XEUTKPw/DPs7QDeyzJDvieFySMJ4eKbQrRwjv7YLeDQNaDwwhQWkxP2B4Dc+RQK5xiUf0bb
OFr7gGhlw5ykn72PXJplwMEuoPQyoDoziYjdNai//Rxp9lGk24eRMQ2+TrOPQHcHWKEwhZx+Me0cOV2/
TlhYW3kYizOMKOn0739m61NE7jmFH7vGkdgwhF0Ng0gi8PitdRCVXROIURhDckAUnP03X6/tru9+RKYR
TN7msMNQdwJLpBZoaI/V5yaR2jSKqPRalHWMYbvpCRJMj0V8TSjr8CFWGZoD4dFSHSpuAOVXgOqL3juL
KHImP3a0ArLk7YhWWKA+PwWF6ym+sXrxfkYdVM4hbKzvJ3iwgaByDeMDVfBbIETL9Lg0ACwioR2gkiqi
8ipzPuqJoMhlyQn8wo8YnF6ZawJpLWPYbBzAisw6JFofI77OjfhaN23LAFYH6YCYeofbX8/tD9mJkygh
0anPPYPG7r7HkdO6twis7OXLZCak2H3YZRvGOoo6Vnoaa7UP8XmNG+t0jxCXI67/1w6Er5AbUU/qzSPC
fKrnll6q59QaFFKjUZ6ZQHZD368xfmWLwtRWHcZSqRk7GkeRYBlEvNaDVfJ6fFHnQVy2uC6oHiDhtFZ1
Exntrcrlg4rq2dgDLKGSyyXRZTp82G24e3+Z3Axt1RG0tdph0p5ElNyKrZZhcSs+LD17b5o86P4vWUkO
HLzyDFLHGGSOURoJrT6c6H4ulpzcOY7kphFsOX7rTqTMIpJX/lABRUoCYlQN2GB8gq8MTwKpD7oBSbhs
NBcmkN48QqCmEgA1m4ork2LJpbf4sIPqfs2Rqz3LlDYoU18Ik4mnyUNqv+SACVKnD8mNXiTbBl9G4xD2
tfsQnVGLJMrCVqr7T8ov34vNsTFhQJhMzAjpr1eyXGlFYtOY2Ml2mgdmg4SmcI6KJbfTOoT1+n7ElXY+
iMu1shMsTI6aEVLvlxw9UALufFvMQ9hmGsA2Q/9s0HySzYuVXHLUeOLrSXi5YtqDTvlME4r3l9JJxo3b
XZ2IoM63kcS0Sf8Im3SeWdjMjli81GiMr7TnMy1cU1RMx6gbdJJxwGbQIopUvlZPqtb1z8J6wx9djsUX
8p7PNAkfHHPyCmAwmlFdVY2yIjVism1YnW0Wm8pL8EfNdc7CC3nPAyaocvPR2+sGjzl5GuQSaJ6jW/U3
mJOo2QS5MgfX6egsU2TPJGUCjo77+F/hlaNmEzKkcpy/cBE80n0gpXNG8E+24KeaU87daZkB8jlJaTDG
32hvE/hzad7J2fgrlZ3gb7V5Jg8L+x1Xuik4D6ApIgAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADgSURBVDhPpZPNDYMwDIUZpSN0hszCnXnopSe6AKMwBgeo
xM8x7WfZbcyPCqolQxw/P/slkO3ZPM+XcRzv0zR1b4/qHXvkFLZtwzBc08KiKMQtJgdG4d5gB5DnuRTV
dR1DCOKs2SMHZnMSHVuAVrh0mwaslq01t20rHavqEfvuKW4E7IMBK8W/NDdNE8vy5kgsf1gzJJsEZzQj
h9hJ4EGQdt7TbBgjlENkkXZPC5cjc7C83TWeIQCr/v2QCNg8IgEsY7sP6MwhiualHb1GMK5zan/9PGaw
q5wPEeuVZmdZ9gJbxFcrr0ivNgAAAABJRU5ErkJggg==
</value>
</data>
<data name="btnViewMemory.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGiSURBVDhPnZJJS0JRHMXfqqwgWjR8Ab9Bi6hP1bTJTLFR
KqOJyMZdi4ZN5FM3pZsMIXiuXGiC5Wuw0udUzqf7vyoovYo8cN69B+7vcIcnaCYvzvumHegx2dFtEtn4
uytr7CCGWKGXTQ6kOKy3b9w7f7i2jhhihS6jCPvdBwb2gxg8qDnAx6FDtRxgawMQ7zIgVujQ29Cs2hkr
tFUL9FNTGB4dx8npGQLBIPQGI0bGvufjk1P4/X7OaCapgH1I8qOMx+cX3Msywg8RyE/PqjkckREKhThT
KajuYG7BjAm9AaLTiZfoK+bMi9CpZJvDCZmVktgrgD1jpSCZSCKZSiOuJPAeiyORTCGlkmNxBdFolDMN
BcuWFRhMM7hyuZFKZ7BkWYVRJV9euaAoCmc0urqCcqmIUrmEXD6Pz2wWRZ7L33I2l8NHJs2Z1vqCzY0t
zM6b4bnxooQy1tbV87XHi0Ihz5mGgmbEC2qvsLuzx+7BAp/k43nbuquaJUnimdRGl9hpEKvx/yJWaBk5
ctOEdkKmI5HpB/sp05wYYgUmLXN/cxa0X9b9APwJ69INAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral">
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>274, 17</value>
</metadata>
<metadata name="odfVMImage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral">
<metadata name="odfVMImage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>497, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>217</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA
Expand Down

0 comments on commit ba8f7d6

Please sign in to comment.