@Override
    public void action() {
      if (!isAttached() || getVirtualMachineProxy().isPausePressed()) {
        return;
      }
      logThreads();
      getVirtualMachineProxy().suspend();
      logThreads();
      SuspendContextImpl suspendContext = mySuspendManager.pushSuspendContext(EventRequest.SUSPEND_ALL, 0);
      myDebugProcessDispatcher.getMulticaster().paused(suspendContext);

      myDebuggerManagerThread.schedule(new SuspendContextCommandImpl(suspendContext) {
        @Override
        public void contextAction(@NotNull SuspendContextImpl suspendContext) {
          // New events should not come after global pause
          DebuggerDiagnosticsUtil.checkThreadsConsistency(DebugProcessImpl.this, true);
        }
        @Override
        public Priority getPriority() {
          return Priority.LOWEST;
        }
      });
    }
@Override
    public void action()