public void handleIsolate(
      @NotNull final IsolateRef isolateRef, final boolean isolatePausedStart) {
    // We should auto-resume on a StartPaused event, if we're not remote debugging, and after
    // breakpoints have been set.

    final boolean newIsolate = myIsolatesInfo.addIsolate(isolateRef);

    if (isolatePausedStart) {
      myIsolatesInfo.setShouldInitialResume(isolateRef);
    }

    // Just to make sure that the main isolate is not handled twice, both from
    // handleDebuggerConnected() and DartVmServiceListener.received(PauseStart)
    if (newIsolate) {
      addRequest(
          () ->
              myVmService.setExceptionPauseMode(
                  isolateRef.getId(),
                  ExceptionPauseMode.Unhandled,
                  new VmServiceConsumers.SuccessConsumerWrapper() {
                    @Override
                    public void received(Success response) {
                      setInitialBreakpointsAndResume(isolateRef);
                    }
                  }));
    } else {
      checkInitialResume(isolateRef);
    }
  }
 public void handleIsolatePausedOnStart(@NotNull final IsolateRef isolateRef) {
   // Just to make sure that the main isolate is not handled twice, both from
   // handleDebuggerConnected() and DartVmServiceListener.received(PauseStart)
   if (myIsolatesInfo.addIsolate(isolateRef)) {
     addRequest(
         new Runnable() {
           @Override
           public void run() {
             myVmService.setExceptionPauseMode(
                 isolateRef.getId(),
                 ExceptionPauseMode.Unhandled,
                 new VmServiceConsumers.SuccessConsumerWrapper() {
                   @Override
                   public void received(Success response) {
                     setInitialBreakpointsAndResume(isolateRef.getId());
                   }
                 });
           }
         });
   }
 }