internal override void RemoveSelf(ScriptDebugger debugger) { if (this.SequencePoints != null) { // Remove ourselves from the list of bound breakpoints in this script. It's possible the breakpoint was never // bound, in which case there is nothing to do. var boundBreakPoints = debugger.GetBoundBreakpoints(this.SequencePoints); if (boundBreakPoints != null) { Diagnostics.Assert(boundBreakPoints.Contains(this), "If we set _scriptBlock, we should have also added the breakpoint to the bound breakpoint list"); boundBreakPoints.Remove(this); if (boundBreakPoints.All(breakpoint => breakpoint.SequencePointIndex != this.SequencePointIndex)) { // No other line breakpoints are at the same sequence point, so disable the breakpoint so // we don't go looking for breakpoints the next time we hit the sequence point. // This isn't strictly necessary, but script execution will be faster. this.BreakpointBitArray.Set(SequencePointIndex, false); } } } debugger.RemoveLineBreakpoint(this); }
internal override void RemoveSelf(ScriptDebugger debugger) { debugger.RemoveCommandBreakpoint(this); }
internal override void RemoveSelf(ScriptDebugger debugger) { debugger.RemoveVariableBreakpoint(this); }
internal virtual void RemoveSelf(ScriptDebugger debugger) { }