Print this page


@@ -9992,10 +9992,21 @@
           Can generate the <code>VMStart</code> event early.
           See <eventlink id="VMStart"/>.
+      <capabilityfield id="can_generate_early_class_hook_events" since="9">
+        <description>
+          Can generate the <eventlink id="ClassFileLoadHook"/> events early.
+          If this capability and
+          <internallink id="jvmtiCapabilities.can_generate_all_class_hook_events"
+          ><code>can_generate_all_class_hook_events</code></internallink>
+          are enabled then the <eventlink id="ClassFileLoadHook"/> events
+          could be posted for classes loaded in the primordial phase.
+          See <eventlink id="ClassFileLoadHook"/>.
+        </description>
+      </capabilityfield>
     <function id="GetPotentialCapabilities" jkernel="yes" phase="onload" num="140">
       <synopsis>Get Potential Capabilities</synopsis>

@@ -12402,11 +12413,11 @@
-  <event label="Class File Load Hook" phase="start"
+  <event label="Class File Load Hook" phase="any"
          id="ClassFileLoadHook" const="JVMTI_EVENT_CLASS_FILE_LOAD_HOOK" num="54">
       This event is sent when the VM obtains class file data,
       but before it constructs
       the in-memory representation for that class. 

@@ -12418,11 +12429,16 @@
       the existing class file data sent by the VM to include profiling/debugging hooks.
       See the description of 
       <internallink id="bci">bytecode instrumentation</internallink>
       for usage information.
-    This event may be sent before the VM is initialized (the start 
+    The timing of this event may depend on whether the agent has added the
+    <internallink id="jvmtiCapabilities.can_generate_early_class_hook_events">
+    <code>can_generate_early_class_hook_events</code></internallink>
+    capability or not.
+    If the capability has been added then the VM posts the events in the primordial phase.
+    Otherwise, this event may be sent before the VM is initialized (the start 
     <functionlink id="GetPhase">phase</functionlink>).
     Some classes might not be compatible
     with the function (eg. ROMized classes) and this event will not be
     generated for these classes.

@@ -12468,10 +12484,11 @@
       <capability id="can_generate_all_class_hook_events"></capability>
+      <capability id="can_generate_early_class_hook_events"></capability>
       <param id="jni_env">

@@ -12540,11 +12557,11 @@
   <event label="VM Start Event"
          id="VMStart" const="JVMTI_EVENT_VM_START" num="57" phase="start">
-      The VM initialization event signals the start of the VM.
+      The VM start event signals the start of the VM.
       At this time JNI is live but the VM is not yet fully initialized.
       Once this event is generated, the agent is free to call any JNI function.
       This event signals the beginning of the start phase,
       <jvmti/> functions permitted in the start phase may be called.

@@ -14417,10 +14434,14 @@
   <change date="17 February 2016" version="9.0.0">
       Support for modules:
        - Add new capability can_generate_early_vmstart
        - Allow CompiledMethodLoad events at start phase
+  <change date="14 April 2016" version="9.0.0">
+      Support for modules:
+       - Add new capability can_generate_early_class_hook_events
+  </change>
 <!-- Keep this comment at the end of the file
 Local variables: