public static bool IsInNestedScriptBlock(Ast ast, LineBreakpoint breakpoint) { LineBreakpoint.CheckBreakpointInScript visitor = new LineBreakpoint.CheckBreakpointInScript { _breakpoint = breakpoint }; ast.InternalVisit(visitor); return(visitor._result); }
internal Breakpoint NewLineBreakpoint(string path, int line, ScriptBlock action) { ++this._numBreakpoints; LineBreakpoint breakpoint = new LineBreakpoint(this._context, path, line, action); this._context.Debugger.AddBreakpointToRunningScripts(breakpoint); this._lineBreakpoints.Add((Breakpoint)breakpoint); return((Breakpoint)breakpoint); }
internal void RemoveLineBreakpoint(LineBreakpoint breakpoint) { Tuple <WeakReference, List <LineBreakpoint> > tuple; this._pendingBreakpoints.Remove(breakpoint); if (this._boundBreakpoints.TryGetValue(breakpoint.Script, out tuple)) { tuple.Item2.Remove(breakpoint); } }
internal void Remove(LineBreakpoint breakpoint) { List <Breakpoint> breakpointList = breakpoint.Type != Breakpoint.BreakpointType.Line ? this._statementBreakpoints : this._lineBreakpoints; if (!breakpointList.Contains((Breakpoint)breakpoint)) { return; } breakpointList.Remove((Breakpoint)breakpoint); --this._numBreakpoints; }
public void AddBreakpoint(int lineNumber) { if (_cachedScriptPath == null) CacheRunbook(); var lineBreakpoint = new LineBreakpoint(lineNumber); // We can only have one breakpoint per line if (_breakpoints.Contains(lineBreakpoint)) return; _breakpoints.Add(lineBreakpoint); }
private void RemoveBreakpointFromRunningScripts(LineBreakpoint breakpoint) { foreach (Debugger.ScriptBlockInfo runningScript in this._runningScriptStack) { if (runningScript.DebugInfo != null && breakpoint.Script.Equals(runningScript.ScriptBlock.File, StringComparison.OrdinalIgnoreCase)) { runningScript.DebugInfo.RemoveBreakpoint(breakpoint); if (runningScript.DebugInfo.FromScript) { break; } } } }
internal void RemoveBreakpoint(Breakpoint breakpoint) { if (this._idToBreakpoint.ContainsKey(breakpoint.Id)) { this._idToBreakpoint.Remove(breakpoint.Id); } ScriptBreakpointInfo scriptBreakpointInfo = (ScriptBreakpointInfo)null; if (breakpoint.IsScriptBreakpoint) { if (!this._scriptPathToBreakpointInfo.TryGetValue(breakpoint.Script, out scriptBreakpointInfo)) { return; } } else { scriptBreakpointInfo = this._globalScriptBreakpointInfo; } switch (breakpoint.Type) { case Breakpoint.BreakpointType.Line: case Breakpoint.BreakpointType.Statement: LineBreakpoint breakpoint1 = (LineBreakpoint)breakpoint; scriptBreakpointInfo.Remove(breakpoint1); this.RemoveBreakpointFromRunningScripts(breakpoint1); break; case Breakpoint.BreakpointType.Variable: scriptBreakpointInfo.Remove((VariableBreakpoint)breakpoint); break; case Breakpoint.BreakpointType.Command: scriptBreakpointInfo.Remove((CommandBreakpoint)breakpoint); break; } if (scriptBreakpointInfo.NumBreakpoints == 0 && breakpoint.IsScriptBreakpoint) { this._scriptPathToBreakpointInfo.Remove(breakpoint.Script); } this.OnBreakpointUpdated(new BreakpointUpdatedEventArgs(breakpoint, BreakpointUpdateType.Removed)); }
internal void AddBreakpointToRunningScripts(LineBreakpoint breakpoint) { foreach (Debugger.ScriptBlockInfo runningScript in this._runningScriptStack) { if (runningScript.DebugInfo != null && breakpoint.Script.Equals(runningScript.ScriptBlock.File, StringComparison.OrdinalIgnoreCase)) { if (breakpoint.Type == Breakpoint.BreakpointType.Line) { runningScript.DebugInfo.AddLineBreakpoint(breakpoint); } else { runningScript.DebugInfo.AddStatementBreakpoint(breakpoint); } if (runningScript.DebugInfo.FromScript) { break; } } } }
public static bool IsInNestedScriptBlock(Ast ast, LineBreakpoint breakpoint) { var visitor = new CheckBreakpointInScript { _breakpoint = breakpoint }; ast.InternalVisit(visitor); return visitor._result; }
private Breakpoint AddLineBreakpoint(LineBreakpoint breakpoint) { this.AddBreakpointCommon(breakpoint); this._pendingBreakpoints.Add(breakpoint); return(breakpoint); }
private Breakpoint AddLineBreakpoint(LineBreakpoint breakpoint) { this.AddBreakpointCommon(breakpoint); this._pendingBreakpoints.Add(breakpoint); return breakpoint; }
internal void RemoveLineBreakpoint(LineBreakpoint breakpoint) { Tuple<WeakReference, List<LineBreakpoint>> tuple; this._pendingBreakpoints.Remove(breakpoint); if (this._boundBreakpoints.TryGetValue(breakpoint.Script, out tuple)) { tuple.Item2.Remove(breakpoint); } }
internal void RemoveLineBreakpoint(LineBreakpoint breakpoint) { _pendingBreakpoints.Remove(breakpoint); Tuple<WeakReference, List<LineBreakpoint>> value; if (_boundBreakpoints.TryGetValue(breakpoint.Script, out value)) { value.Item2.Remove(breakpoint); } }
public void RemoveBreakpoint(int lineNumber) { var lineBreakpoint = new LineBreakpoint(lineNumber); if (!_breakpoints.Contains(lineBreakpoint)) return; _breakpoints.Remove(lineBreakpoint); }