Exemple #1
0
        string EvaluateTrace(int frameId, string exp)
        {
            var sb   = new StringBuilder();
            int last = 0;
            int i    = exp.IndexOf('{');

            while (i != -1)
            {
                if (i < exp.Length - 1 && exp[i + 1] == '{')
                {
                    sb.Append(exp, last, i - last + 1);
                    last = i + 2;
                    i    = exp.IndexOf('{', i + 2);
                    continue;
                }
                int j = exp.IndexOf('}', i + 1);
                if (j == -1)
                {
                    break;
                }
                string se = exp.Substring(i + 1, j - i - 1);
                se = protocolClient.SendRequestSync(new EvaluateRequest(se, frameId)).Result;
                sb.Append(exp, last, i - last);
                sb.Append(se);
                last = j + 1;
                i    = exp.IndexOf('{', last);
            }
            sb.Append(exp, last, exp.Length - last);
            return(sb.ToString());
        }
Exemple #2
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);
        }
Exemple #3
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);
        }
Exemple #4
0
 public static void Launch(string pFile, bool pStopAtEntry)
 {
     StartDebugger(() =>
     {
         LaunchRequest lr = new LaunchRequest();
         lr.NoDebug       = false;
         lr.ConfigurationProperties.Add("program", pFile);
         lr.ConfigurationProperties.Add("stopAtEntry", pStopAtEntry);
         mClient.SendRequestSync(lr);
     });
 }
Exemple #5
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");
        }
Exemple #6
0
 protected override void OnStepInstruction()
 {
     protocolClient.SendRequestSync(new StepInRequest(currentThreadId));
 }