示例#1
0
        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);
        }
示例#2
0
 public override void Dispose()
 {
     base.Dispose();
     if (protocolClient != null)
     {
         protocolClient.SendRequestSync(new DisconnectRequest());
         protocolClient.Stop();
         protocolClient = null;
     }
 }
示例#3
0
 public override void Dispose()
 {
     base.Dispose();
     if (protocolClient != null)
     {
         protocolClient.RequestReceived -= OnDebugAdaptorRequestReceived;
         protocolClient.SendRequestSync(new DisconnectRequest());
         protocolClient.Stop();
         protocolClient = null;
     }
 }
示例#4
0
        public static void Detach()
        {
            DisconnectRequest dr = new DisconnectRequest();

            mClient.SendRequestSync(dr);

            mClient.Stop();

            mDebuggerProcess.Kill();

            mClient          = null;
            mDebuggerProcess = null;
        }
示例#5
0
 public override void Dispose()
 {
     HasExited = true;
     base.Dispose();
     if (protocolClient != null)
     {
         protocolClient.RequestReceived -= OnDebugAdaptorRequestReceived;
         try {
             protocolClient.SendRequestSync(new DisconnectRequest());
             protocolClient.Stop();
         } catch {
         }
         protocolClient = null;
     }
 }
示例#6
0
        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");
        }
示例#7
0
        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);
        }