$ java -cp classes:asm-9.11.1.jar... demo.ParseDemo      (25.0.5+8-LTS)
== header ==
bytes            : 1488
this             : demo/Target
super            : java/lang/Object
version          : 69.0  (ClassFile.JAVA_25_VERSION = 69)
flags            : public,super 
constant pool    : 69 slots

== fields ==
final,private name Ljava/lang/String;
private calls I

== methods ==
public <init>(Ljava/lang/String;)V
public,static fib(I)I
public,static sumTo(I)J
public greet(Ljava/lang/String;)Ljava/lang/String;
public pause(J)V
public,static boom()V
public,static explode([I)I
public calls()I

== class elements, in file order (the model is a stream of elements) ==
  AccessFlags
  ClassFileVersion
  Superclass
  Interfaces
  field  name
  field  calls
  method <init>
  method fib
  method sumTo
  method greet
  method pause
  method boom
  method explode
  method calls
  SourceFile=Target.java
  BoundInnerClassesAttribute

== fib(I)I, instruction by instruction ==
  ILOAD_0
  ICONST_2
  IF_ICMPGE
  ILOAD_0
  GOTO
  ILOAD_0
  ICONST_1
  ISUB
  INVOKESTATIC  demo/Target.fib(I)I
  ILOAD_0
  ICONST_2
  ISUB
  INVOKESTATIC  demo/Target.fib(I)I
  IADD
  IRETURN

== invoke targets in the whole class ==
  2 x demo/Target.fib
  1 x indy:makeConcatWithConstants
  1 x java/lang/IllegalStateException.<init>
  1 x java/lang/Object.<init>
  1 x java/lang/Thread.sleep

== a JDK class from the runtime image: java.lang.String ==
bytes 50116, major 69, methods 171, fields 11, interfaces 5
PASS Target.class is class-file version 69 (compiled with --release 25)
PASS Target has 8 methods (constructor + 7)
PASS fib calls itself twice
PASS greet() uses invokedynamic string concatenation
exit=0
