protected void closeCurrentProcess(boolean closedByUser) {
    detachProcess(closedByUser, false, vmData -> {
      //if (DebuggerSettings.getInstance().UNMUTE_ON_STOP) {
      //  XDebugSession session = mySession.getXDebugSession();
      //  if (session != null) {
      //    session.setBreakpointMuted(false);
      //  }
      //}
      if (vmData != null && vmData.vm != null) {
        try {
          vmData.vm.dispose(); // to be on the safe side ensure that VM mirror, if present, is disposed and invalidated
        }
        catch (Throwable ignored) {
        }
      }

      var attachedNewThread = unstashAndReattach();
      if (!attachedNewThread) {
        onRootProcessClosed();
      }
    });
  }
protected void closeCurrentProcess(boolean closedByUser)