internal void PushDebugger(Debugger debugger) { if (debugger == null) { return; } if (debugger.Equals(this)) { throw new PSInvalidOperationException(DebuggerStrings.RemoteServerDebuggerCannotPushSelf); } if (_wrappedDebugger.IsOverridden) { throw new PSInvalidOperationException(DebuggerStrings.RemoteServerDebuggerAlreadyPushed); } // Swap wrapped debugger. UnsubscribeWrappedDebugger(_wrappedDebugger.Value); _wrappedDebugger.Override(debugger); SubscribeWrappedDebugger(_wrappedDebugger.Value); }