ClassLoad and ClassPrepare JVMTI events are missed in the start VM phase with and without can_generate_early_vmstart capability.
Here is a start of the output of simple program which prints received events(with enabled can_generate_early_vmstart capability):
----------System.out:(256/19904)----------
<CLASS_FILE_LOAD>: phase 4: signature: Ljava/util/ArrayList;,
<CLASS_FILE_LOAD>: phase 4: signature: Ljdk/internal/vm/PostVMInitHook;,
<CLASS_FILE_PREPARE>: phase 4: signature: Ljdk/internal/vm/PostVMInitHook;,
<CLASS_FILE_LOAD>: phase 4: signature: Lsun/launcher/LauncherHelper;,
<CLASS_FILE_PREPARE>: phase 4: signature: Lsun/launcher/LauncherHelper;,
<CLASS_FILE_LOAD>: phase 4: signature: Ljdk/internal/loader/BuiltinClassLoader$3;,
Here is a start of the output of simple program which prints received events(with enabled can_generate_early_vmstart capability):
----------System.out:(256/19904)----------
<CLASS_FILE_LOAD>: phase 4: signature: Ljava/util/ArrayList;,
<CLASS_FILE_LOAD>: phase 4: signature: Ljdk/internal/vm/PostVMInitHook;,
<CLASS_FILE_PREPARE>: phase 4: signature: Ljdk/internal/vm/PostVMInitHook;,
<CLASS_FILE_LOAD>: phase 4: signature: Lsun/launcher/LauncherHelper;,
<CLASS_FILE_PREPARE>: phase 4: signature: Lsun/launcher/LauncherHelper;,
<CLASS_FILE_LOAD>: phase 4: signature: Ljdk/internal/loader/BuiltinClassLoader$3;,