public class com.oracle.svm.core.jdk.StackTraceUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.core.jdk.StackTraceUtils
  super_class: java.lang.Object
{
  private static final java.lang.Class<?>[] NO_CLASSES;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  private static final java.lang.StackTraceElement[] NO_ELEMENTS;
    descriptor: [Ljava/lang/StackTraceElement;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 44
            iconst_0
            anewarray java.lang.Class
            putstatic com.oracle.svm.core.jdk.StackTraceUtils.NO_CLASSES:[Ljava/lang/Class;
         1: .line 45
            iconst_0
            anewarray java.lang.StackTraceElement
            putstatic com.oracle.svm.core.jdk.StackTraceUtils.NO_ELEMENTS:[Ljava/lang/StackTraceElement;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.jdk.StackTraceUtils this
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.core.jdk.StackTraceUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/jdk/StackTraceUtils;

  public static java.lang.StackTraceElement[] getStackTrace(boolean, org.graalvm.word.Pointer);
    descriptor: (ZLorg/graalvm/word/Pointer;)[Ljava/lang/StackTraceElement;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // boolean filterExceptions
        start local 1 // org.graalvm.word.Pointer startSP
         0: .line 55
            new com.oracle.svm.core.jdk.BuildStackTraceVisitor
            dup
            iload 0 /* filterExceptions */
            getstatic com.oracle.svm.core.SubstrateOptions.MaxJavaStackTraceDepth:Lcom/oracle/svm/core/option/RuntimeOptionKey;
            invokevirtual com.oracle.svm.core.option.RuntimeOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokespecial com.oracle.svm.core.jdk.BuildStackTraceVisitor.<init>:(ZI)V
            astore 2 /* visitor */
        start local 2 // com.oracle.svm.core.jdk.BuildStackTraceVisitor visitor
         1: .line 56
            aload 1 /* startSP */
            aload 2 /* visitor */
            invokestatic com.oracle.svm.core.stack.JavaStackWalker.walkCurrentThread:(Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/stack/StackFrameVisitor;)Z
            pop
         2: .line 57
            aload 2 /* visitor */
            getfield com.oracle.svm.core.jdk.BuildStackTraceVisitor.trace:Ljava/util/ArrayList;
            getstatic com.oracle.svm.core.jdk.StackTraceUtils.NO_ELEMENTS:[Ljava/lang/StackTraceElement;
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.StackTraceElement[]
            areturn
        end local 2 // com.oracle.svm.core.jdk.BuildStackTraceVisitor visitor
        end local 1 // org.graalvm.word.Pointer startSP
        end local 0 // boolean filterExceptions
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0  filterExceptions  Z
            0    3     1           startSP  Lorg/graalvm/word/Pointer;
            1    3     2           visitor  Lcom/oracle/svm/core/jdk/BuildStackTraceVisitor;
    MethodParameters:
                  Name  Flags
      filterExceptions  
      startSP           

  public static java.lang.StackTraceElement[] getStackTrace(boolean, org.graalvm.nativeimage.IsolateThread);
    descriptor: (ZLorg/graalvm/nativeimage/IsolateThread;)[Ljava/lang/StackTraceElement;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // boolean filterExceptions
        start local 1 // org.graalvm.nativeimage.IsolateThread thread
         0: .line 68
            new com.oracle.svm.core.jdk.BuildStackTraceVisitor
            dup
            iload 0 /* filterExceptions */
            getstatic com.oracle.svm.core.SubstrateOptions.MaxJavaStackTraceDepth:Lcom/oracle/svm/core/option/RuntimeOptionKey;
            invokevirtual com.oracle.svm.core.option.RuntimeOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokespecial com.oracle.svm.core.jdk.BuildStackTraceVisitor.<init>:(ZI)V
            astore 2 /* visitor */
        start local 2 // com.oracle.svm.core.jdk.BuildStackTraceVisitor visitor
         1: .line 69
            aload 1 /* thread */
            aload 2 /* visitor */
            invokestatic com.oracle.svm.core.stack.JavaStackWalker.walkThread:(Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/core/stack/StackFrameVisitor;)Z
            pop
         2: .line 70
            aload 2 /* visitor */
            getfield com.oracle.svm.core.jdk.BuildStackTraceVisitor.trace:Ljava/util/ArrayList;
            getstatic com.oracle.svm.core.jdk.StackTraceUtils.NO_ELEMENTS:[Ljava/lang/StackTraceElement;
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.StackTraceElement[]
            areturn
        end local 2 // com.oracle.svm.core.jdk.BuildStackTraceVisitor visitor
        end local 1 // org.graalvm.nativeimage.IsolateThread thread
        end local 0 // boolean filterExceptions
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0  filterExceptions  Z
            0    3     1            thread  Lorg/graalvm/nativeimage/IsolateThread;
            1    3     2           visitor  Lcom/oracle/svm/core/jdk/BuildStackTraceVisitor;
    MethodParameters:
                  Name  Flags
      filterExceptions  
      thread            

  public static java.lang.Class<?>[] getClassContext(int, org.graalvm.word.Pointer);
    descriptor: (ILorg/graalvm/word/Pointer;)[Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // int skip
        start local 1 // org.graalvm.word.Pointer startSP
         0: .line 74
            new com.oracle.svm.core.jdk.GetClassContextVisitor
            dup
            iload 0 /* skip */
            invokespecial com.oracle.svm.core.jdk.GetClassContextVisitor.<init>:(I)V
            astore 2 /* visitor */
        start local 2 // com.oracle.svm.core.jdk.GetClassContextVisitor visitor
         1: .line 75
            aload 1 /* startSP */
            aload 2 /* visitor */
            invokestatic com.oracle.svm.core.stack.JavaStackWalker.walkCurrentThread:(Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/stack/StackFrameVisitor;)Z
            pop
         2: .line 76
            aload 2 /* visitor */
            getfield com.oracle.svm.core.jdk.GetClassContextVisitor.trace:Ljava/util/ArrayList;
            getstatic com.oracle.svm.core.jdk.StackTraceUtils.NO_CLASSES:[Ljava/lang/Class;
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            areturn
        end local 2 // com.oracle.svm.core.jdk.GetClassContextVisitor visitor
        end local 1 // org.graalvm.word.Pointer startSP
        end local 0 // int skip
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     skip  I
            0    3     1  startSP  Lorg/graalvm/word/Pointer;
            1    3     2  visitor  Lcom/oracle/svm/core/jdk/GetClassContextVisitor;
    Signature: (ILorg/graalvm/word/Pointer;)[Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      skip     
      startSP  

  public static java.lang.Class<?> getCallerClass(org.graalvm.word.Pointer, boolean);
    descriptor: (Lorg/graalvm/word/Pointer;Z)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.graalvm.word.Pointer startSP
        start local 1 // boolean showLambdaFrames
         0: .line 83
            aload 0 /* startSP */
            iload 1 /* showLambdaFrames */
            iconst_0
            iconst_1
            invokestatic com.oracle.svm.core.jdk.StackTraceUtils.getCallerClass:(Lorg/graalvm/word/Pointer;ZIZ)Ljava/lang/Class;
            areturn
        end local 1 // boolean showLambdaFrames
        end local 0 // org.graalvm.word.Pointer startSP
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0           startSP  Lorg/graalvm/word/Pointer;
            0    1     1  showLambdaFrames  Z
    Signature: (Lorg/graalvm/word/Pointer;Z)Ljava/lang/Class<*>;
    MethodParameters:
                  Name  Flags
      startSP           
      showLambdaFrames  

  public static java.lang.Class<?> getCallerClass(org.graalvm.word.Pointer, boolean, int, boolean);
    descriptor: (Lorg/graalvm/word/Pointer;ZIZ)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.graalvm.word.Pointer startSP
        start local 1 // boolean showLambdaFrames
        start local 2 // int depth
        start local 3 // boolean ignoreFirst
         0: .line 87
            new com.oracle.svm.core.jdk.GetCallerClassVisitor
            dup
            iload 1 /* showLambdaFrames */
            iload 2 /* depth */
            iload 3 /* ignoreFirst */
            invokespecial com.oracle.svm.core.jdk.GetCallerClassVisitor.<init>:(ZIZ)V
            astore 4 /* visitor */
        start local 4 // com.oracle.svm.core.jdk.GetCallerClassVisitor visitor
         1: .line 88
            aload 0 /* startSP */
            aload 4 /* visitor */
            invokestatic com.oracle.svm.core.stack.JavaStackWalker.walkCurrentThread:(Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/stack/StackFrameVisitor;)Z
            pop
         2: .line 89
            aload 4 /* visitor */
            getfield com.oracle.svm.core.jdk.GetCallerClassVisitor.result:Ljava/lang/Class;
            areturn
        end local 4 // com.oracle.svm.core.jdk.GetCallerClassVisitor visitor
        end local 3 // boolean ignoreFirst
        end local 2 // int depth
        end local 1 // boolean showLambdaFrames
        end local 0 // org.graalvm.word.Pointer startSP
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0           startSP  Lorg/graalvm/word/Pointer;
            0    3     1  showLambdaFrames  Z
            0    3     2             depth  I
            0    3     3       ignoreFirst  Z
            1    3     4           visitor  Lcom/oracle/svm/core/jdk/GetCallerClassVisitor;
    Signature: (Lorg/graalvm/word/Pointer;ZIZ)Ljava/lang/Class<*>;
    MethodParameters:
                  Name  Flags
      startSP           
      showLambdaFrames  
      depth             
      ignoreFirst       

  public static boolean shouldShowFrame(com.oracle.svm.core.code.FrameInfoQueryResult, boolean, boolean, boolean);
    descriptor: (Lcom/oracle/svm/core/code/FrameInfoQueryResult;ZZZ)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // com.oracle.svm.core.code.FrameInfoQueryResult frameInfo
        start local 1 // boolean showLambdaFrames
        start local 2 // boolean showReflectFrames
        start local 3 // boolean showHiddenFrames
         0: .line 98
            iload 3 /* showHiddenFrames */
            ifeq 2
         1: .line 100
            iconst_1
            ireturn
         2: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* frameInfo */
            invokevirtual com.oracle.svm.core.code.FrameInfoQueryResult.getSourceClass:()Ljava/lang/Class;
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         3: .line 104
            aload 4 /* clazz */
            ifnonnull 5
         4: .line 110
            iconst_0
            ireturn
         5: .line 113
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 4 /* clazz */
            ldc Lcom/oracle/svm/core/jdk/InternalVMMethod;
            invokestatic org.graalvm.util.DirectAnnotationAccess.isAnnotationPresent:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Z
            ifeq 7
         6: .line 114
            iconst_0
            ireturn
         7: .line 117
      StackMap locals:
      StackMap stack:
            iload 1 /* showLambdaFrames */
            ifne 9
            aload 4 /* clazz */
            ldc Lcom/oracle/svm/core/jdk/LambdaFormHiddenMethod;
            invokestatic org.graalvm.util.DirectAnnotationAccess.isAnnotationPresent:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Z
            ifeq 9
         8: .line 118
            iconst_0
            ireturn
         9: .line 121
      StackMap locals:
      StackMap stack:
            iload 2 /* showReflectFrames */
            ifne 13
            aload 4 /* clazz */
            ldc Ljava/lang/reflect/Method;
            if_acmpne 10
            ldc "invoke"
            aload 0 /* frameInfo */
            invokevirtual com.oracle.svm.core.code.FrameInfoQueryResult.getSourceMethodName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
        10: .line 122
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
            ldc Ljava/lang/reflect/Constructor;
            if_acmpne 11
            ldc "newInstance"
            aload 0 /* frameInfo */
            invokevirtual com.oracle.svm.core.code.FrameInfoQueryResult.getSourceMethodName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 123
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
            ldc Ljava/lang/Class;
            if_acmpne 13
            ldc "newInstance"
            aload 0 /* frameInfo */
            invokevirtual com.oracle.svm.core.code.FrameInfoQueryResult.getSourceMethodName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 129
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        13: .line 132
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // java.lang.Class clazz
        end local 3 // boolean showHiddenFrames
        end local 2 // boolean showReflectFrames
        end local 1 // boolean showLambdaFrames
        end local 0 // com.oracle.svm.core.code.FrameInfoQueryResult frameInfo
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0          frameInfo  Lcom/oracle/svm/core/code/FrameInfoQueryResult;
            0   14     1   showLambdaFrames  Z
            0   14     2  showReflectFrames  Z
            0   14     3   showHiddenFrames  Z
            3   14     4              clazz  Ljava/lang/Class<*>;
    MethodParameters:
                   Name  Flags
      frameInfo          
      showLambdaFrames   
      showReflectFrames  
      showHiddenFrames   

  public static boolean shouldShowFrame(jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.meta.ResolvedJavaMethod, boolean, boolean, boolean);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZZ)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 2 // boolean showLambdaFrames
        start local 3 // boolean showReflectFrames
        start local 4 // boolean showHiddenFrames
         0: .line 140
            iload 4 /* showHiddenFrames */
            ifeq 2
         1: .line 141
            iconst_1
            ireturn
         2: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 5 /* clazz */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaType clazz
         3: .line 145
            aload 5 /* clazz */
            ldc Lcom/oracle/svm/core/jdk/InternalVMMethod;
            invokestatic org.graalvm.util.DirectAnnotationAccess.isAnnotationPresent:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Z
            ifeq 5
         4: .line 146
            iconst_0
            ireturn
         5: .line 149
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            iload 2 /* showLambdaFrames */
            ifne 7
            aload 5 /* clazz */
            ldc Lcom/oracle/svm/core/jdk/LambdaFormHiddenMethod;
            invokestatic org.graalvm.util.DirectAnnotationAccess.isAnnotationPresent:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Z
            ifeq 7
         6: .line 150
            iconst_0
            ireturn
         7: .line 153
      StackMap locals:
      StackMap stack:
            iload 3 /* showReflectFrames */
            ifne 11
            aload 5 /* clazz */
            aload 0 /* metaAccess */
            ldc Ljava/lang/reflect/Method;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
            ldc "invoke"
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         8: .line 154
      StackMap locals:
      StackMap stack:
            aload 5 /* clazz */
            aload 0 /* metaAccess */
            ldc Ljava/lang/reflect/Constructor;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 9
            ldc "newInstance"
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 155
      StackMap locals:
      StackMap stack:
            aload 5 /* clazz */
            aload 0 /* metaAccess */
            ldc Ljava/lang/Class;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 11
            ldc "newInstance"
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 156
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        11: .line 159
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // jdk.vm.ci.meta.ResolvedJavaType clazz
        end local 4 // boolean showHiddenFrames
        end local 3 // boolean showReflectFrames
        end local 2 // boolean showLambdaFrames
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0         metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   12     1             method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   12     2   showLambdaFrames  Z
            0   12     3  showReflectFrames  Z
            0   12     4   showHiddenFrames  Z
            3   12     5              clazz  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
                   Name  Flags
      metaAccess         
      method             
      showLambdaFrames   
      showReflectFrames  
      showHiddenFrames   
}
SourceFile: "StackTraceUtils.java"