private void DebuggerService_StateChanged(object sender, DebuggerStateChangedEventArgs e) { if (e.NewState == DebuggerState.StoppedAtError) { SendError(debuggerService.CurrentException.Message); } }
private void DebuggerService_StateChanged(object sender, DebuggerStateChangedEventArgs e) { // When input is wrapped up, we need to update as if the processor had stepped. if ((e.OldState == DebuggerState.AwaitingInput || e.OldState == DebuggerState.Running) && e.NewState != DebuggerState.Unavailable) { Update(); } }
private void DebuggerService_StateChanged(object sender, DebuggerStateChangedEventArgs e) { if (e.NewState == DebuggerState.Running) { this.View.DataContext = null; } else { this.View.DataContext = this; } }
private void DebuggerService_StateChanged(object sender, DebuggerStateChangedEventArgs e) { if (e.OldState == DebuggerState.AwaitingInput) { inputLine.State = DisassemblyLineState.None; inputLine = null; } if (e.NewState == DebuggerState.Unavailable) { return; } if (e.NewState == DebuggerState.Running) { var line = GetLineByAddress(debuggerService.Machine.PC); line.HasIP = false; } else if (e.NewState == DebuggerState.StoppedAtError) { var line = GetLineByAddress(debuggerService.Machine.ExecutingAddress); line.State = DisassemblyLineState.Blocked; line.ToolTip = new ExceptionToolTip(debuggerService.CurrentException); BringLineIntoView(line); } else if (e.NewState == DebuggerState.Done) { var line = GetLineByAddress(debuggerService.Machine.ExecutingAddress); line.State = DisassemblyLineState.Stopped; BringLineIntoView(line); } else if (e.NewState == DebuggerState.AwaitingInput) { inputLine = GetLineByAddress(debuggerService.Machine.ExecutingAddress); inputLine.State = DisassemblyLineState.Paused; BringLineIntoView(inputLine); } else if (e.NewState == DebuggerState.Stopped && (e.OldState == DebuggerState.Running || e.OldState == DebuggerState.AwaitingInput)) { var line = GetLineByAddress(debuggerService.Machine.PC); line.HasIP = true; BringLineIntoView(line); } UpdateStackLines(); }