示例#1
0
        private void OnBreakpointHit(object sender, BreakpointHitEventArgs eventArgs)
        {
            _breakpointLineNumber = eventArgs.LineNumber;
            if (_pauseOnActiveBreakpoint && !_activeBreakpoints.ContainsKey(eventArgs.LineNumber))
            {
                if (!DelayExecution)
                {
                    _breakpointLineNumber = null;
                    Logger.Debug("Breakpoint is no longer in active breakpoints, continuing execution.");
                }
                else
                {
                    Logger.Debug($"Breakpoint not in active breakpoints, delaying execution for {ExecutionDelay.TotalMilliseconds} milliseconds.");
                    RefreshCurrentVariables();
                    DelayingExecution = true;
                    Thread.Sleep(ExecutionDelay);
                    DelayingExecution = false;
                }
            }
            else
            {
                PauseOnBreakpoint = true;
                Logger.Info("Stopping at breakpoint.");
                RefreshCurrentVariables();

                while (PauseOnBreakpoint)
                {
                    Logger.Trace($"Sleeping on breakpoint for {_commandEvaluateTimeout.TotalMilliseconds} milliseconds.");
                    Thread.Sleep(_commandEvaluateTimeout);
                }

                Logger.Info("Continuing from breakpoint.");
            }
        }
示例#2
0
        private void OnBreakpointHit(object sender, BreakpointHitEventArgs e)
        {
            var boundBreakpoints = new[] { _breakpointManager.GetBreakpoint(e.Breakpoint) };

            // An engine that supports more advanced breakpoint features such as hit counts, conditions and filters
            // should notify each bound breakpoint that it has been hit and evaluate conditions here.

            Send(new AD7BreakpointEvent(new AD7BoundBreakpointsEnum(boundBreakpoints)), AD7BreakpointEvent.IID, _threads[e.Thread]);
        }
示例#3
0
        private void OnBreakpointHit(object sender, BreakpointHitEventArgs e)
        {
            var boundBreakpoints = new[] { _breakpointManager.GetBreakpoint(e.Breakpoint) };

            // An engine that supports more advanced breakpoint features such as hit counts, conditions and filters
            // should notify each bound breakpoint that it has been hit and evaluate conditions here.

            Send(new AD7BreakpointEvent(new AD7BoundBreakpointsEnum(boundBreakpoints)), AD7BreakpointEvent.IID, _threads[e.Thread]);
        }
示例#4
0
 private void OnBreakpointHit(object sender, BreakpointHitEventArgs e) {
     var boundBreakpoint = _breakpointManager.GetBoundBreakpoint(e.BreakpointBinding);
     Send(new AD7BreakpointEvent(new AD7BoundBreakpointsEnum(new[] { boundBreakpoint })), AD7BreakpointEvent.IID, _threads[e.Thread]);
 }