示例#1
0
 private void DebuggerService_StateChanged(object sender, DebuggerStateChangedEventArgs e)
 {
     if (e.NewState == DebuggerState.StoppedAtError)
     {
         SendError(debuggerService.CurrentException.Message);
     }
 }
示例#2
0
 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();
     }
 }
示例#3
0
 private void DebuggerService_StateChanged(object sender, DebuggerStateChangedEventArgs e)
 {
     if (e.NewState == DebuggerState.Running)
     {
         this.View.DataContext = null;
     }
     else
     {
         this.View.DataContext = this;
     }
 }
示例#4
0
        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();
        }