Пример #1
0
        static void OnTargetEvent(object sender, TargetEventArgs args)
        {
            if (args.BreakEvent != null && args.BreakEvent.NonUserBreakpoint)
            {
                return;
            }
            nextStatementLocations.Clear();

            try {
                switch (args.Type)
                {
                case TargetEventType.TargetExited:
                    Breakpoints.RemoveRunToCursorBreakpoints();
                    Cleanup();
                    break;

                case TargetEventType.TargetSignaled:
                case TargetEventType.TargetStopped:
                case TargetEventType.TargetHitBreakpoint:
                case TargetEventType.TargetInterrupted:
                case TargetEventType.UnhandledException:
                case TargetEventType.ExceptionThrown:
                    Breakpoints.RemoveRunToCursorBreakpoints();
                    SetCurrentBacktrace(args.Backtrace);
                    NotifyPaused();
                    NotifyException(args);
                    break;
                }
            } catch (Exception ex) {
                LoggingService.LogError("Error handling debugger target event", ex);
            }
        }