void StartDebugAgent() { var startInfo = new ProcessStartInfo(GetDebugAdapterPath(), GetDebugAdapterArguments()); startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardInput = true; startInfo.StandardOutputEncoding = Encoding.UTF8; startInfo.StandardOutputEncoding = Encoding.UTF8; startInfo.UseShellExecute = false; if (!MonoDevelop.Core.Platform.IsWindows) { startInfo.EnvironmentVariables ["PATH"] = Environment.GetEnvironmentVariable("PATH") + ":/usr/local/share/dotnet/"; } debugAgentProcess = Process.Start(startInfo); debugAgentProcess.EnableRaisingEvents = true; debugAgentProcess.Exited += DebugAgentProcess_Exited; protocolClient = new DebugProtocolHost(debugAgentProcess.StandardInput.BaseStream, debugAgentProcess.StandardOutput.BaseStream); protocolClient.RequestReceived += OnDebugAdaptorRequestReceived; protocolClient.Run(); protocolClient.TraceCallback = (obj) => { Debug.WriteLine(obj); }; protocolClient.EventReceived += HandleEvent; InitializeRequest initRequest = CreateInitRequest(); Capabilities = protocolClient.SendRequestSync(initRequest); }
public override void Dispose() { base.Dispose(); if (protocolClient != null) { protocolClient.SendRequestSync(new DisconnectRequest()); protocolClient.Stop(); protocolClient = null; } }
public override void Dispose() { base.Dispose(); if (protocolClient != null) { protocolClient.RequestReceived -= OnDebugAdaptorRequestReceived; protocolClient.SendRequestSync(new DisconnectRequest()); protocolClient.Stop(); protocolClient = null; } }
public static void Detach() { DisconnectRequest dr = new DisconnectRequest(); mClient.SendRequestSync(dr); mClient.Stop(); mDebuggerProcess.Kill(); mClient = null; mDebuggerProcess = null; }
public override void Dispose() { HasExited = true; base.Dispose(); if (protocolClient != null) { protocolClient.RequestReceived -= OnDebugAdaptorRequestReceived; try { protocolClient.SendRequestSync(new DisconnectRequest()); protocolClient.Stop(); } catch { } protocolClient = null; } }
public void Start(Stream inputStream, Stream outputStream) { this.outputStream = outputStream; /*debugAgentProcess = * debugAgentProcess.EnableRaisingEvents = true; * debugAgentProcess.Exited += DebugAgentProcess_Exited;*/ protocolClient = new DebugProtocolHost(inputStream, outputStream); protocolClient.Run(); protocolClient.EventReceived += HandleEvent; OnTargetOutput(false, "Running"); InitializeRequest initRequest = CreateInitRequest(); Capabilities = protocolClient.SendRequestSync(initRequest); OnTargetOutput(false, "Running"); }
private static void StartDebugger(Action pAction) { if (mDebuggerProcess != null) { Detach(); } mBreakPoints.Clear(); ProcessStartInfo psi2 = new ProcessStartInfo(); psi2.FileName = Path.GetFullPath(@"..\..\..\..\netcoredbg-win64-master\netcoredbg\netcoredbg.exe"); psi2.Arguments = "--interpreter=vscode --engineLogging=log.log"; psi2.UseShellExecute = false; psi2.RedirectStandardInput = true; psi2.RedirectStandardOutput = true; mDebuggerProcess = Process.Start(psi2); mClient = new DebugProtocolHost(mDebuggerProcess.StandardInput.BaseStream, mDebuggerProcess.StandardOutput.BaseStream, true); mClient.EventReceived += Client_EventReceived; mClient.Run(); InitializeRequest ir = new InitializeRequest(); ir.ClientID = "ClientID"; ir.AdapterID = "Adapter"; ir.ColumnsStartAt1 = true; ir.PathFormat = InitializeArguments.PathFormatValue.Path; ir.SupportsVariablePaging = true; ir.SupportsVariableType = true; ir.SupportsRunInTerminalRequest = true; var repsonse = mClient.SendRequestSync(ir); pAction.Invoke(); ConfigurationDoneRequest cr = new ConfigurationDoneRequest(); mClient.SendRequestSync(cr); }