/// <summary> /// Remove breakpoints. /// </summary> protected override void ProcessRecord() { List <Breakpoint> breakpoints = Context.Debugger.GetBreakpoints(); // // Filter by parameter set // if (this.ParameterSetName.Equals("Script", StringComparison.OrdinalIgnoreCase)) { // no filter } else if (this.ParameterSetName.Equals("Id", StringComparison.OrdinalIgnoreCase)) { breakpoints = Filter( breakpoints, _id, delegate(Breakpoint breakpoint, int id) { return(breakpoint.Id == id); } ); } else if (this.ParameterSetName.Equals("Command", StringComparison.OrdinalIgnoreCase)) { breakpoints = Filter( breakpoints, _command, delegate(Breakpoint breakpoint, string command) { CommandBreakpoint commandBreakpoint = breakpoint as CommandBreakpoint; if (commandBreakpoint == null) { return(false); } return(commandBreakpoint.Command.Equals(command, StringComparison.OrdinalIgnoreCase)); }); } else if (this.ParameterSetName.Equals("Variable", StringComparison.OrdinalIgnoreCase)) { breakpoints = Filter( breakpoints, _variable, delegate(Breakpoint breakpoint, string variable) { VariableBreakpoint variableBreakpoint = breakpoint as VariableBreakpoint; if (variableBreakpoint == null) { return(false); } return(variableBreakpoint.Variable.Equals(variable, StringComparison.OrdinalIgnoreCase)); }); } else if (this.ParameterSetName.Equals("Type", StringComparison.OrdinalIgnoreCase)) { breakpoints = Filter( breakpoints, _type, delegate(Breakpoint breakpoint, BreakpointType type) { switch (type) { case BreakpointType.Line: if (breakpoint is LineBreakpoint) { return(true); } break; case BreakpointType.Command: if (breakpoint is CommandBreakpoint) { return(true); } break; case BreakpointType.Variable: if (breakpoint is VariableBreakpoint) { return(true); } break; } return(false); }); } else { Diagnostics.Assert(false, "Invalid parameter set: {0}", this.ParameterSetName); } // // Filter by script // if (_script != null) { breakpoints = Filter( breakpoints, _script, delegate(Breakpoint breakpoint, string script) { if (breakpoint.Script == null) { return(false); } return(string.Compare( SessionState.Path.GetUnresolvedProviderPathFromPSPath(breakpoint.Script), SessionState.Path.GetUnresolvedProviderPathFromPSPath(script), StringComparison.OrdinalIgnoreCase ) == 0); }); } // // Output results // foreach (Breakpoint b in breakpoints) { WriteObject(b); } }
protected override void ProcessRecord() { FilterSelector <string> selector = null; List <Breakpoint> breakpoints = base.Context.Debugger.GetBreakpoints(); if (!base.ParameterSetName.Equals("Script", StringComparison.OrdinalIgnoreCase)) { if (base.ParameterSetName.Equals("Id", StringComparison.OrdinalIgnoreCase)) { breakpoints = this.Filter <int>(breakpoints, this._id, (breakpoint, id) => breakpoint.Id == id); } else if (base.ParameterSetName.Equals("Command", StringComparison.OrdinalIgnoreCase)) { breakpoints = this.Filter <string>(breakpoints, this._command, delegate(Breakpoint breakpoint, string command) { CommandBreakpoint breakpoint2 = breakpoint as CommandBreakpoint; if (breakpoint2 == null) { return(false); } return(breakpoint2.Command.Equals(command, StringComparison.OrdinalIgnoreCase)); }); } else if (base.ParameterSetName.Equals("Variable", StringComparison.OrdinalIgnoreCase)) { breakpoints = this.Filter <string>(breakpoints, this._variable, delegate(Breakpoint breakpoint, string variable) { VariableBreakpoint breakpoint2 = breakpoint as VariableBreakpoint; if (breakpoint2 == null) { return(false); } return(breakpoint2.Variable.Equals(variable, StringComparison.OrdinalIgnoreCase)); }); } else if (base.ParameterSetName.Equals("Type", StringComparison.OrdinalIgnoreCase)) { breakpoints = this.Filter <BreakpointType>(breakpoints, this._type, delegate(Breakpoint breakpoint, BreakpointType type) { switch (type) { case BreakpointType.Line: if (breakpoint is LineBreakpoint) { return(true); } break; case BreakpointType.Variable: if (breakpoint is VariableBreakpoint) { return(true); } break; case BreakpointType.Command: if (breakpoint is CommandBreakpoint) { return(true); } break; } return(false); }); } } if (this._script != null) { if (selector == null) { selector = delegate(Breakpoint breakpoint, string script) { if (breakpoint.Script == null) { return(false); } return(string.Compare(base.SessionState.Path.GetUnresolvedProviderPathFromPSPath(breakpoint.Script), base.SessionState.Path.GetUnresolvedProviderPathFromPSPath(script), StringComparison.OrdinalIgnoreCase) == 0); }; } breakpoints = this.Filter <string>(breakpoints, this._script, selector); } foreach (Breakpoint breakpoint in breakpoints) { base.WriteObject(breakpoint); } }
/// <summary> /// Remove breakpoints. /// </summary> protected override void ProcessRecord() { List <Breakpoint> breakpoints = Runspace.Debugger.GetBreakpoints(); // Filter by parameter set if (ParameterSetName.Equals(LineParameterSetName, StringComparison.OrdinalIgnoreCase)) { // no filter } else if (ParameterSetName.Equals(IdParameterSetName, StringComparison.OrdinalIgnoreCase)) { breakpoints = Filter( breakpoints, Id, delegate(Breakpoint breakpoint, int id) { return(breakpoint.Id == id); } ); } else if (ParameterSetName.Equals(CommandParameterSetName, StringComparison.OrdinalIgnoreCase)) { breakpoints = Filter( breakpoints, Command, delegate(Breakpoint breakpoint, string command) { CommandBreakpoint commandBreakpoint = breakpoint as CommandBreakpoint; if (commandBreakpoint is null) { return(false); } return(commandBreakpoint.Command.Equals(command, StringComparison.OrdinalIgnoreCase)); }); } else if (ParameterSetName.Equals(VariableParameterSetName, StringComparison.OrdinalIgnoreCase)) { breakpoints = Filter( breakpoints, Variable, delegate(Breakpoint breakpoint, string variable) { VariableBreakpoint variableBreakpoint = breakpoint as VariableBreakpoint; if (variableBreakpoint is null) { return(false); } return(variableBreakpoint.Variable.Equals(variable, StringComparison.OrdinalIgnoreCase)); }); } else if (ParameterSetName.Equals(TypeParameterSetName, StringComparison.OrdinalIgnoreCase)) { breakpoints = Filter( breakpoints, Type, delegate(Breakpoint breakpoint, BreakpointType type) { switch (type) { case BreakpointType.Line: if (breakpoint is LineBreakpoint) { return(true); } break; case BreakpointType.Command: if (breakpoint is CommandBreakpoint) { return(true); } break; case BreakpointType.Variable: if (breakpoint is VariableBreakpoint) { return(true); } break; } return(false); }); } else { Diagnostics.Assert(false, "Invalid parameter set: {0}", this.ParameterSetName); } // Filter by script if (Script != null) { breakpoints = Filter( breakpoints, Script, delegate(Breakpoint breakpoint, string script) { if (breakpoint.Script is null) { return(false); } return(string.Equals( SessionState.Path.GetUnresolvedProviderPathFromPSPath(breakpoint.Script), SessionState.Path.GetUnresolvedProviderPathFromPSPath(script), StringComparison.OrdinalIgnoreCase )); }); } // Output results foreach (Breakpoint b in breakpoints) { ProcessBreakpoint(b); } }