/// <summary> /// Process Record. /// </summary> protected override void ProcessRecord() { if (this.ParameterSetName.Equals(CommonRunspaceCommandBase.ProcessNameParameterSet)) { SetDebugPreferenceHelper(ProcessName, AppDomainName, true, "EnableRunspaceDebugCommandPersistDebugPreferenceFailure"); return; } IReadOnlyList <Runspace> results = GetRunspaces(); foreach (var runspace in results) { if (runspace.RunspaceStateInfo.State != RunspaceState.Opened) { WriteError( new ErrorRecord(new PSInvalidOperationException(string.Format(CultureInfo.InvariantCulture, Debugger.RunspaceOptionInvalidRunspaceState, runspace.Name)), "SetRunspaceDebugOptionCommandInvalidRunspaceState", ErrorCategory.InvalidOperation, this)); continue; } System.Management.Automation.Debugger debugger = GetDebuggerFromRunspace(runspace); if (debugger == null) { continue; } // Enable debugging by preserving debug stop events. debugger.UnhandledBreakpointMode = UnhandledBreakpointProcessingMode.Wait; if (this.MyInvocation.BoundParameters.ContainsKey(nameof(BreakAll))) { if (BreakAll) { try { debugger.SetDebuggerStepMode(true); } catch (PSInvalidOperationException e) { WriteError( new ErrorRecord( e, "SetRunspaceDebugOptionCommandCannotEnableDebuggerStepping", ErrorCategory.InvalidOperation, this)); } } else { debugger.SetDebuggerStepMode(false); } } } }
/// <summary> /// Process Record. /// </summary> protected override void ProcessRecord() { if (this.ParameterSetName.Equals(CommonRunspaceCommandBase.ProcessNameParameterSet)) { SetDebugPreferenceHelper(ProcessName.ToLowerInvariant(), AppDomainName, false, "DisableRunspaceDebugCommandPersistDebugPreferenceFailure"); } else { IReadOnlyList <Runspace> results = GetRunspaces(); foreach (var runspace in results) { if (runspace.RunspaceStateInfo.State != RunspaceState.Opened) { WriteError( new ErrorRecord( new PSInvalidOperationException(string.Format(CultureInfo.InvariantCulture, Debugger.RunspaceOptionInvalidRunspaceState, runspace.Name)), "SetRunspaceDebugOptionCommandInvalidRunspaceState", ErrorCategory.InvalidOperation, this) ); continue; } System.Management.Automation.Debugger debugger = GetDebuggerFromRunspace(runspace); if (debugger == null) { continue; } debugger.SetDebuggerStepMode(false); debugger.UnhandledBreakpointMode = UnhandledBreakpointProcessingMode.Ignore; } } }