< prev index next >

src/hotspot/share/prims/jvmti.xml

Print this page




 341 
 342    <!ELEMENT dt  (#PCDATA|jvmti|code|i|b)*>
 343 
 344    <!ELEMENT table  (tr)+>
 345 
 346    <!ELEMENT tr  (td|th)*>
 347 
 348    <!ELEMENT td  ANY>
 349    <!ATTLIST td class CDATA #IMPLIED>
 350 
 351    <!ELEMENT th  ANY>
 352    <!ATTLIST th class CDATA #IMPLIED>
 353 
 354    <!ELEMENT ul  (li)+>
 355    <!ATTLIST ul type (disc|circle|square) "disc">
 356 
 357    <!ELEMENT li  ANY>
 358  ]>
 359 
 360 <specification label="JVM(TM) Tool Interface"
 361         majorversion="9"
 362         minorversion="0"
 363         microversion="0">
 364   <title subtitle="Version">
 365     <tm>JVM</tm> Tool Interface
 366   </title>
 367 
 368   <intro id="whatIs" label="What is the JVM Tool Interface?">
 369     The <tm>JVM</tm> Tool Interface (<jvmti/>)
 370     is a programming interface used by development and monitoring tools.
 371     It provides both a way to inspect the state and
 372     to control the execution of applications running in the
 373     <tm>Java</tm> virtual machine (VM).
 374     <p/>
 375     <jvmti/> is intended to provide a VM interface for the full breadth of tools
 376     that need access to VM state, including but not limited to: profiling,
 377     debugging, monitoring, thread analysis, and coverage analysis tools.
 378     <p/>
 379     <jvmti/> may not be available in all implementations of the <tm>Java</tm> virtual
 380     machine.
 381     <p/>


7614         would occur under the customary JVM semantics.
7615         In other words, retransforming a class does not cause its initializers to be
7616         run. The values of static fields will remain as they were
7617         prior to the call.
7618         <p/>
7619         Threads need not be suspended.
7620         <p/>
7621         All breakpoints in the class are cleared.
7622         <p/>
7623         All attributes are updated.
7624         <p/>
7625         Instances of the retransformed class are not affected -- fields retain their
7626         previous values.
7627         <functionlink id="GetTag">Tags</functionlink> on the instances are
7628         also unaffected.
7629         <p/>
7630         In response to this call, no events other than the
7631         <eventlink id="ClassFileLoadHook"/> event
7632         will be sent.
7633         <p/>
7634         The retransformation may change method bodies, the constant pool and attributes.

7635         The retransformation must not add, remove or rename fields or methods, change the
7636         signatures of methods, change modifiers, or change inheritance.


7637         These restrictions may be lifted in future versions.
7638         See the error return description below for information on error codes
7639         returned if an unsupported retransformation is attempted.
7640         The class file bytes are not verified or installed until they have passed
7641         through the chain of <eventlink id="ClassFileLoadHook"/> events, thus the
7642         returned error code reflects the result of the transformations.
7643         If any error code is returned other than <code>JVMTI_ERROR_NONE</code>,
7644         none of the classes to be retransformed will have a new definition installed.
7645         When this function returns (with the error code of <code>JVMTI_ERROR_NONE</code>)
7646         all of the classes to be retransformed will have their new definitions installed.
7647       </description>
7648       <origin>new</origin>
7649       <capabilities>
7650         <required id="can_retransform_classes"></required>
7651         <capability id="can_retransform_any_class"></capability>
7652       </capabilities>
7653       <parameters>
7654         <param id="class_count">
7655           <jint min="0"/>
7656           <description>


7687         </error>
7688         <error id="JVMTI_ERROR_NAMES_DONT_MATCH">
7689           The class name defined in a retransformed class file is
7690           different from the name in the old class object.
7691         </error>
7692         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED">
7693           A retransformed class file would require adding a method.
7694         </error>
7695         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED">
7696           A retransformed class file changes a field.
7697         </error>
7698         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED">
7699           A direct superclass is different for a retransformed class file,
7700           or the set of directly implemented
7701           interfaces is different.
7702         </error>
7703         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED">
7704           A retransformed class file does not declare a method
7705           declared in the old class version.
7706         </error>



7707         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED">
7708           A retransformed class file has different class modifiers.
7709         </error>
7710         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED">
7711           A method in the retransformed class file has different modifiers
7712           than its counterpart in the old class version.
7713         </error>
7714       </errors>
7715     </function>
7716 
7717     <function id="RedefineClasses" jkernel="yes" num="87">
7718       <synopsis>Redefine Classes</synopsis>
7719       <typedef id="jvmtiClassDefinition" label="Class redefinition description">
7720         <field id="klass">
7721           <jclass/>
7722             <description>
7723               Class object for this class
7724             </description>
7725         </field>
7726         <field id="class_byte_count">


7761         would occur under the customary JVM semantics.
7762         In other words, redefining a class does not cause its initializers to be
7763         run. The values of static fields will remain as they were
7764         prior to the call.
7765         <p/>
7766         Threads need not be suspended.
7767         <p/>
7768         All breakpoints in the class are cleared.
7769         <p/>
7770         All attributes are updated.
7771         <p/>
7772         Instances of the redefined class are not affected -- fields retain their
7773         previous values.
7774         <functionlink id="GetTag">Tags</functionlink> on the instances are
7775         also unaffected.
7776         <p/>
7777         In response to this call, the <jvmti/> event
7778         <eventlink id="ClassFileLoadHook">Class File Load Hook</eventlink>
7779         will be sent (if enabled), but no other <jvmti/> events will be sent.
7780         <p/>
7781         The redefinition may change method bodies, the constant pool and attributes.

7782         The redefinition must not add, remove or rename fields or methods, change the
7783         signatures of methods, change modifiers, or change inheritance.


7784         These restrictions may be lifted in future versions.
7785         See the error return description below for information on error codes
7786         returned if an unsupported redefinition is attempted.
7787         The class file bytes are not verified or installed until they have passed
7788         through the chain of <eventlink id="ClassFileLoadHook"/> events, thus the
7789         returned error code reflects the result of the transformations applied
7790         to the bytes passed into <paramlink id="class_definitions"/>.
7791         If any error code is returned other than <code>JVMTI_ERROR_NONE</code>,
7792         none of the classes to be redefined will have a new definition installed.
7793         When this function returns (with the error code of <code>JVMTI_ERROR_NONE</code>)
7794         all of the classes to be redefined will have their new definitions installed.
7795       </description>
7796       <origin>jvmdi</origin>
7797       <capabilities>
7798         <required id="can_redefine_classes"></required>
7799         <capability id="can_redefine_any_class"></capability>
7800       </capabilities>
7801       <parameters>
7802         <param id="class_count">
7803           <jint min="0"/>


7838         </error>
7839         <error id="JVMTI_ERROR_NAMES_DONT_MATCH">
7840           The class name defined in a new class file is
7841           different from the name in the old class object.
7842         </error>
7843         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED">
7844           A new class file would require adding a method.
7845         </error>
7846         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED">
7847           A new class version changes a field.
7848         </error>
7849         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED">
7850           A direct superclass is different for a new class
7851           version, or the set of directly implemented
7852           interfaces is different.
7853         </error>
7854         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED">
7855           A new class version does not declare a method
7856           declared in the old class version.
7857         </error>



7858         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED">
7859           A new class version has different modifiers.
7860         </error>
7861         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED">
7862           A method in the new class version has different modifiers
7863           than its counterpart in the old class version.
7864         </error>
7865         <error id="JVMTI_ERROR_UNMODIFIABLE_MODULE">
7866           A module cannot be modified.
7867           See <functionlink id="IsModifiableModule"/>.
7868         </error>
7869       </errors>
7870     </function>
7871 
7872   </category>
7873 
7874   <category id="object" label="Object">
7875 
7876     <function id="GetObjectSize" jkernel="yes" phase="start" num="154">
7877       <synopsis>Get Object Size</synopsis>


11722     <errorid id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED" num="66">
11723       A direct superclass is different for the new class
11724       version, or the set of directly implemented
11725       interfaces is different.
11726     </errorid>
11727     <errorid id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED" num="67">
11728       A new class version does not declare a method
11729       declared in the old class version.
11730     </errorid>
11731     <errorid id="JVMTI_ERROR_NAMES_DONT_MATCH" num="69">
11732       The class name defined in the new class file is
11733       different from the name in the old class object.
11734     </errorid>
11735     <errorid id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED" num="70">
11736       A new class version has different modifiers.
11737     </errorid>
11738     <errorid id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED" num="71">
11739       A method in the new class version has different modifiers
11740       than its counterpart in the old class version.
11741     </errorid>



11742   </errorcategory>
11743 </errorsection>
11744 
11745 <eventsection label="Events">
11746   <intro label="Handling Events" id="eventIntro">
11747     Agents can be informed of many events that occur in application
11748     programs.
11749     <p/>
11750     To handle events, designate a set of callback functions with
11751     <functionlink id="SetEventCallbacks"></functionlink>.
11752     For each event the corresponding callback function will be
11753     called.
11754     Arguments to the callback function provide additional
11755     information about the event.
11756     <p/>
11757     The callback function is usually called from within an application
11758     thread. The <jvmti/> implementation does not
11759     queue events in any way. This means
11760     that event callback functions must be written
11761     carefully. Here are some general guidelines. See


14793   </change>
14794   <change date="13 October 2016" version="9.0.0">
14795       Support for modules:
14796        - The majorversion is 9 now
14797        - The ClassFileLoadHook events are not sent during the primordial phase anymore.
14798        - Allow CompiledMethodLoad events at start phase
14799        - Add new capabilities:
14800           - can_generate_early_vmstart
14801           - can_generate_early_class_hook_events
14802        - Add new functions:
14803           - GetAllModules
14804           - AddModuleReads, AddModuleExports, AddModuleOpens, AddModuleUses, AddModuleProvides
14805           - IsModifiableModule
14806       Clarified can_redefine_any_classes, can_retransform_any_classes and IsModifiableClass API to
14807       disallow some implementation defined classes.
14808   </change>
14809   <change date="12 February 2017" version="9.0.0">
14810       Minor update for GetCurrentThread function:
14811        - The function may return NULL in the start phase if the
14812          can_generate_early_vmstart capability is enabled.







14813   </change>
14814 </changehistory>
14815 
14816 </specification>
14817 <!-- Keep this comment at the end of the file
14818 Local variables:
14819 mode: sgml
14820 sgml-omittag:t
14821 sgml-shorttag:t
14822 sgml-namecase-general:t
14823 sgml-general-insert-case:lower
14824 sgml-minimize-attributes:nil
14825 sgml-always-quote-attributes:t
14826 sgml-indent-step:2
14827 sgml-indent-data:t
14828 sgml-parent-document:nil
14829 sgml-exposed-tags:nil
14830 sgml-local-catalogs:nil
14831 sgml-local-ecat-files:nil
14832 End:


 341 
 342    <!ELEMENT dt  (#PCDATA|jvmti|code|i|b)*>
 343 
 344    <!ELEMENT table  (tr)+>
 345 
 346    <!ELEMENT tr  (td|th)*>
 347 
 348    <!ELEMENT td  ANY>
 349    <!ATTLIST td class CDATA #IMPLIED>
 350 
 351    <!ELEMENT th  ANY>
 352    <!ATTLIST th class CDATA #IMPLIED>
 353 
 354    <!ELEMENT ul  (li)+>
 355    <!ATTLIST ul type (disc|circle|square) "disc">
 356 
 357    <!ELEMENT li  ANY>
 358  ]>
 359 
 360 <specification label="JVM(TM) Tool Interface"
 361         majorversion="11"
 362         minorversion="0"
 363         microversion="0">
 364   <title subtitle="Version">
 365     <tm>JVM</tm> Tool Interface
 366   </title>
 367 
 368   <intro id="whatIs" label="What is the JVM Tool Interface?">
 369     The <tm>JVM</tm> Tool Interface (<jvmti/>)
 370     is a programming interface used by development and monitoring tools.
 371     It provides both a way to inspect the state and
 372     to control the execution of applications running in the
 373     <tm>Java</tm> virtual machine (VM).
 374     <p/>
 375     <jvmti/> is intended to provide a VM interface for the full breadth of tools
 376     that need access to VM state, including but not limited to: profiling,
 377     debugging, monitoring, thread analysis, and coverage analysis tools.
 378     <p/>
 379     <jvmti/> may not be available in all implementations of the <tm>Java</tm> virtual
 380     machine.
 381     <p/>


7614         would occur under the customary JVM semantics.
7615         In other words, retransforming a class does not cause its initializers to be
7616         run. The values of static fields will remain as they were
7617         prior to the call.
7618         <p/>
7619         Threads need not be suspended.
7620         <p/>
7621         All breakpoints in the class are cleared.
7622         <p/>
7623         All attributes are updated.
7624         <p/>
7625         Instances of the retransformed class are not affected -- fields retain their
7626         previous values.
7627         <functionlink id="GetTag">Tags</functionlink> on the instances are
7628         also unaffected.
7629         <p/>
7630         In response to this call, no events other than the
7631         <eventlink id="ClassFileLoadHook"/> event
7632         will be sent.
7633         <p/>
7634         The retransformation may change method bodies, the constant pool and attributes
7635         (unless explicitly prohibited).
7636         The retransformation must not add, remove or rename fields or methods, change the
7637         signatures of methods, change modifiers, or change inheritance.
7638         The retransformation must not change the <code>NestHost</code> or
7639         <code>NestMembers</code> attributes.
7640         These restrictions may be lifted in future versions.
7641         See the error return description below for information on error codes
7642         returned if an unsupported retransformation is attempted.
7643         The class file bytes are not verified or installed until they have passed
7644         through the chain of <eventlink id="ClassFileLoadHook"/> events, thus the
7645         returned error code reflects the result of the transformations.
7646         If any error code is returned other than <code>JVMTI_ERROR_NONE</code>,
7647         none of the classes to be retransformed will have a new definition installed.
7648         When this function returns (with the error code of <code>JVMTI_ERROR_NONE</code>)
7649         all of the classes to be retransformed will have their new definitions installed.
7650       </description>
7651       <origin>new</origin>
7652       <capabilities>
7653         <required id="can_retransform_classes"></required>
7654         <capability id="can_retransform_any_class"></capability>
7655       </capabilities>
7656       <parameters>
7657         <param id="class_count">
7658           <jint min="0"/>
7659           <description>


7690         </error>
7691         <error id="JVMTI_ERROR_NAMES_DONT_MATCH">
7692           The class name defined in a retransformed class file is
7693           different from the name in the old class object.
7694         </error>
7695         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED">
7696           A retransformed class file would require adding a method.
7697         </error>
7698         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED">
7699           A retransformed class file changes a field.
7700         </error>
7701         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED">
7702           A direct superclass is different for a retransformed class file,
7703           or the set of directly implemented
7704           interfaces is different.
7705         </error>
7706         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED">
7707           A retransformed class file does not declare a method
7708           declared in the old class version.
7709         </error>
7710         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED">
7711           A retransformed class file has unsupported differences in class attributes.
7712         </error>
7713         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED">
7714           A retransformed class file has different class modifiers.
7715         </error>
7716         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED">
7717           A method in the retransformed class file has different modifiers
7718           than its counterpart in the old class version.
7719         </error>
7720       </errors>
7721     </function>
7722 
7723     <function id="RedefineClasses" jkernel="yes" num="87">
7724       <synopsis>Redefine Classes</synopsis>
7725       <typedef id="jvmtiClassDefinition" label="Class redefinition description">
7726         <field id="klass">
7727           <jclass/>
7728             <description>
7729               Class object for this class
7730             </description>
7731         </field>
7732         <field id="class_byte_count">


7767         would occur under the customary JVM semantics.
7768         In other words, redefining a class does not cause its initializers to be
7769         run. The values of static fields will remain as they were
7770         prior to the call.
7771         <p/>
7772         Threads need not be suspended.
7773         <p/>
7774         All breakpoints in the class are cleared.
7775         <p/>
7776         All attributes are updated.
7777         <p/>
7778         Instances of the redefined class are not affected -- fields retain their
7779         previous values.
7780         <functionlink id="GetTag">Tags</functionlink> on the instances are
7781         also unaffected.
7782         <p/>
7783         In response to this call, the <jvmti/> event
7784         <eventlink id="ClassFileLoadHook">Class File Load Hook</eventlink>
7785         will be sent (if enabled), but no other <jvmti/> events will be sent.
7786         <p/>
7787         The redefinition may change method bodies, the constant pool and attributes
7788         (unless explicitly prohibited).
7789         The redefinition must not add, remove or rename fields or methods, change the
7790         signatures of methods, change modifiers, or change inheritance.
7791         The retransformation must not change the <code>NestHost</code> or
7792         <code>NestMembers</code> attributes.
7793         These restrictions may be lifted in future versions.
7794         See the error return description below for information on error codes
7795         returned if an unsupported redefinition is attempted.
7796         The class file bytes are not verified or installed until they have passed
7797         through the chain of <eventlink id="ClassFileLoadHook"/> events, thus the
7798         returned error code reflects the result of the transformations applied
7799         to the bytes passed into <paramlink id="class_definitions"/>.
7800         If any error code is returned other than <code>JVMTI_ERROR_NONE</code>,
7801         none of the classes to be redefined will have a new definition installed.
7802         When this function returns (with the error code of <code>JVMTI_ERROR_NONE</code>)
7803         all of the classes to be redefined will have their new definitions installed.
7804       </description>
7805       <origin>jvmdi</origin>
7806       <capabilities>
7807         <required id="can_redefine_classes"></required>
7808         <capability id="can_redefine_any_class"></capability>
7809       </capabilities>
7810       <parameters>
7811         <param id="class_count">
7812           <jint min="0"/>


7847         </error>
7848         <error id="JVMTI_ERROR_NAMES_DONT_MATCH">
7849           The class name defined in a new class file is
7850           different from the name in the old class object.
7851         </error>
7852         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED">
7853           A new class file would require adding a method.
7854         </error>
7855         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED">
7856           A new class version changes a field.
7857         </error>
7858         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED">
7859           A direct superclass is different for a new class
7860           version, or the set of directly implemented
7861           interfaces is different.
7862         </error>
7863         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED">
7864           A new class version does not declare a method
7865           declared in the old class version.
7866         </error>
7867         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED">
7868           A new class version has unsupported differences in class attributes.
7869         </error>
7870         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED">
7871           A new class version has different modifiers.
7872         </error>
7873         <error id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED">
7874           A method in the new class version has different modifiers
7875           than its counterpart in the old class version.
7876         </error>
7877         <error id="JVMTI_ERROR_UNMODIFIABLE_MODULE">
7878           A module cannot be modified.
7879           See <functionlink id="IsModifiableModule"/>.
7880         </error>
7881       </errors>
7882     </function>
7883 
7884   </category>
7885 
7886   <category id="object" label="Object">
7887 
7888     <function id="GetObjectSize" jkernel="yes" phase="start" num="154">
7889       <synopsis>Get Object Size</synopsis>


11734     <errorid id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED" num="66">
11735       A direct superclass is different for the new class
11736       version, or the set of directly implemented
11737       interfaces is different.
11738     </errorid>
11739     <errorid id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED" num="67">
11740       A new class version does not declare a method
11741       declared in the old class version.
11742     </errorid>
11743     <errorid id="JVMTI_ERROR_NAMES_DONT_MATCH" num="69">
11744       The class name defined in the new class file is
11745       different from the name in the old class object.
11746     </errorid>
11747     <errorid id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED" num="70">
11748       A new class version has different modifiers.
11749     </errorid>
11750     <errorid id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED" num="71">
11751       A method in the new class version has different modifiers
11752       than its counterpart in the old class version.
11753     </errorid>
11754     <errorid id="JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED" num="72">
11755       A new class version has unsupported differences in class attributes.
11756     </errorid>
11757   </errorcategory>
11758 </errorsection>
11759 
11760 <eventsection label="Events">
11761   <intro label="Handling Events" id="eventIntro">
11762     Agents can be informed of many events that occur in application
11763     programs.
11764     <p/>
11765     To handle events, designate a set of callback functions with
11766     <functionlink id="SetEventCallbacks"></functionlink>.
11767     For each event the corresponding callback function will be
11768     called.
11769     Arguments to the callback function provide additional
11770     information about the event.
11771     <p/>
11772     The callback function is usually called from within an application
11773     thread. The <jvmti/> implementation does not
11774     queue events in any way. This means
11775     that event callback functions must be written
11776     carefully. Here are some general guidelines. See


14808   </change>
14809   <change date="13 October 2016" version="9.0.0">
14810       Support for modules:
14811        - The majorversion is 9 now
14812        - The ClassFileLoadHook events are not sent during the primordial phase anymore.
14813        - Allow CompiledMethodLoad events at start phase
14814        - Add new capabilities:
14815           - can_generate_early_vmstart
14816           - can_generate_early_class_hook_events
14817        - Add new functions:
14818           - GetAllModules
14819           - AddModuleReads, AddModuleExports, AddModuleOpens, AddModuleUses, AddModuleProvides
14820           - IsModifiableModule
14821       Clarified can_redefine_any_classes, can_retransform_any_classes and IsModifiableClass API to
14822       disallow some implementation defined classes.
14823   </change>
14824   <change date="12 February 2017" version="9.0.0">
14825       Minor update for GetCurrentThread function:
14826        - The function may return NULL in the start phase if the
14827          can_generate_early_vmstart capability is enabled.
14828   </change>
14829   <change date="7 February 2018" version="11.0.0">
14830       Minor update for new class file NestHost and NestMembers attributes:
14831         - Specify that RedefineClasses and RetransformClasses are not allowed
14832           to change the class file NestHost and NestMembers attributes.
14833         - Add new error JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED
14834           that can be returned by RedefineClasses and RetransformClasses.
14835   </change>
14836 </changehistory>
14837 
14838 </specification>
14839 <!-- Keep this comment at the end of the file
14840 Local variables:
14841 mode: sgml
14842 sgml-omittag:t
14843 sgml-shorttag:t
14844 sgml-namecase-general:t
14845 sgml-general-insert-case:lower
14846 sgml-minimize-attributes:nil
14847 sgml-always-quote-attributes:t
14848 sgml-indent-step:2
14849 sgml-indent-data:t
14850 sgml-parent-document:nil
14851 sgml-exposed-tags:nil
14852 sgml-local-catalogs:nil
14853 sgml-local-ecat-files:nil
14854 End:
< prev index next >