public async Task EnterBreakStateAsync(Dbg.IManagedActiveStatementProvider activeStatementProvider, CancellationToken cancellationToken)
        {
            _debuggingService.OnBeforeDebuggingStateChanged(DebuggingState.Run, DebuggingState.Break);

            if (_disabled)
            {
                return;
            }

            try
            {
                var debuggerService = new DebuggerService(_managedModuleInfoProvider, activeStatementProvider);
                _editSessionConnection = await _proxy.StartEditSessionAsync(_diagnosticService, debuggerService, cancellationToken).ConfigureAwait(false);
            }
            catch (Exception e) when(FatalError.ReportAndCatchUnlessCanceled(e))
            {
                _disabled = true;
            }

            _activeStatementTrackingService.StartTracking();
        }
 public void EnterBreakState(Dbg.IManagedActiveStatementProvider activeStatementProvider)
 => Shell.ThreadHelper.JoinableTaskFactory.Run(() => EnterBreakStateAsync(activeStatementProvider, CancellationToken.None));
 public DebuggerService(Dbg.IManagedModuleInfoProvider managedModuleInfoProvider, Dbg.IManagedActiveStatementProvider activeStatementProvider)
 {
     _managedModuleInfoProvider = managedModuleInfoProvider;
     _activeStatementProvider   = activeStatementProvider;
 }