Allow debugger instaces to be passed at runtime; Create in-processes debugger

This commit is contained in:
Yoshi Askharoun
2025-07-20 02:13:45 -05:00
parent 1667d353c2
commit 13d2fc640b
9 changed files with 86 additions and 19 deletions
@@ -7,7 +7,7 @@ using System.Runtime.Serialization;
namespace Microsoft.Iris.Debug.SystemNet;
public class NetDebuggerClient : IDebuggerClient, IDisposable
public class NetDebuggerClient : IDebuggerClient, IRemoteDebuggerState, IDisposable
{
private readonly Socket _socket;
private readonly ConcurrentQueue<byte[]> _outQueue = new();
@@ -7,7 +7,7 @@ using System.Runtime.Serialization;
namespace Microsoft.Iris.Debug.SystemNet;
internal class NetDebuggerServer : IDebuggerServer, IDisposable
public class NetDebuggerServer : IDebuggerServer, IRemoteDebuggerState, IDisposable
{
public static IDebuggerServer Current { get; private set; }
@@ -53,7 +53,7 @@ internal class NetDebuggerServer : IDebuggerServer, IDisposable
public MarkupLineNumberEntry[] OnLineNumberTableRequested(string uri)
{
var loadResult = LoadResultCache.Read(uri) as MarkupLoadResult;
var loadResult = (MarkupLoadResult)LoadResultCache.Read(uri);
var lineNumberTable = loadResult.LineNumberTable.DumpTable();
return lineNumberTable;
@@ -121,7 +121,7 @@ internal class NetDebuggerServer : IDebuggerServer, IDisposable
break;
default:
Trace.WriteLine(TraceCategory.MarkupDebug, "Recieved unknown debugger message of type '{0}'.", frame.Type);
Trace.WriteLine(TraceCategory.MarkupDebug, "Received unknown debugger message of type '{0}'.", frame.Type);
break;
}
}
@@ -156,4 +156,9 @@ internal class NetDebuggerServer : IDebuggerServer, IDisposable
receiveThread.Start();
sendThread.Start();
}
public void WaitForContinue()
{
while (Application.Debugger.DebuggerCommand == InterpreterCommand.Break) ;
}
}