コード例 #1
0
        /// <summary>
        /// Lists breakpoints from the debugger API.  Stale breakpoints are removed,
        /// new breakpoints are sent to the <see cref="IBreakpointServer"/> and
        /// breakpoints that cannot be processed are returned with an error.
        /// </summary>
        internal override void MainAction()
        {
            var serverBreakpoints = _client.ListBreakpoints();

            if (serverBreakpoints == null)
            {
                return;
            }
            var bpmResponse = _breakpointManager.UpdateBreakpoints(serverBreakpoints);

            foreach (var breakpointToBeRemoved in bpmResponse.Removed)
            {
                var breakpoint = breakpointToBeRemoved.Convert();
                breakpoint.Activated = false;
                _server.WriteBreakpointAsync(breakpoint).Wait();
            }

            foreach (var breakpoint in bpmResponse.New)
            {
                if (breakpoint.Action == Debugger.V2.Breakpoint.Types.Action.Log)
                {
                    breakpoint.Status = Common.CreateStatusMessage(
                        Messages.LogPointNotSupported, isError: true);
                    breakpoint.IsFinalState = true;
                    _client.UpdateBreakpoint(breakpoint);
                }
                else
                {
                    _server.WriteBreakpointAsync(breakpoint.Convert()).Wait();
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Blocks and reads a breakpoint from the <see cref="IBreakpointServer"/>
        /// and then sends the sends the breakpoint to the debugger API.
        /// </summary>
        internal override void MainAction()
        {
            Breakpoint readBreakpoint = _server.ReadBreakpointAsync().Result;

            if (readBreakpoint.KillServer)
            {
                _cts.Cancel();
                return;
            }
            StackdriverBreakpoint breakpoint = readBreakpoint.Convert();

            breakpoint.IsFinalState = true;
            _client.UpdateBreakpoint(breakpoint);
        }
        /// <summary>
        /// Blocks and reads a breakpoint from the <see cref="IBreakpointServer"/>
        /// and then sends the sends the breakpoint to the debugger API.
        /// </summary>
        internal override void MainAction()
        {
            Breakpoint readBreakpoint = _server.ReadBreakpointAsync().Result;

            if (readBreakpoint.KillServer)
            {
                _cts.Cancel();
                return;
            }
            StackdriverBreakpoint breakpoint = readBreakpoint.Convert();

            if (breakpoint.Action == StackdriverBreakpoint.Types.Action.Log)
            {
                _loggingClient.WriteLogEntry(breakpoint);
            }
            else
            {
                breakpoint.IsFinalState = true;
            }
            _debuggerClient.UpdateBreakpoint(breakpoint);
        }