@Nullable
  protected final Integer processSteppingFilters(@NotNull SuspendContextImpl context, @Nullable Location location) {
    final DebuggerSettings settings = DebuggerSettings.getInstance();

    if ((myMethodFilter != null || (settings.SKIP_SYNTHETIC_METHODS && !myIgnoreFilters)) &&
        location != null && DebuggerUtils.isSynthetic(location.method())) {
      return myDepth;
    }

    if (!myIgnoreFilters) {
      if (settings.SKIP_GETTERS) {
        boolean isGetter = ReadAction.compute(() -> {
          PsiElement contextElement = ContextUtil.getContextElement(context);
          return contextElement != null && DebuggerUtils.isInsideSimpleGetter(contextElement);
        }).booleanValue();

        if (isGetter) {
          return StepRequest.STEP_OUT;
        }
      }

      if (location != null) {
        if (settings.SKIP_CONSTRUCTORS) {
          final Method method = location.method();
          if (method != null && method.isConstructor()) {
            return StepRequest.STEP_OUT;
          }
        }

        if (settings.SKIP_CLASSLOADERS && DebuggerUtilsEx.isAssignableFrom("java.lang.ClassLoader", location.declaringType())) {
          return StepRequest.STEP_OUT;
        }
      }

      for (ExtraSteppingFilter filter : ExtraSteppingFilter.EP_NAME.getExtensionList()) {
        try {
          if (filter.isApplicable(context)) {
            return filter.getStepRequestDepth(context);
          }
        }
        catch (Exception | AssertionError e) {
          DebuggerUtilsImpl.logError(e);
        }
      }
    }

    return null;
  }
@Nullable
  protected final Integer processSteppingFilters(@NotNull SuspendContextImpl context, @Nullable Location location)