< prev index next >

src/hotspot/share/prims/jvmti.xml

Print this page




2807         thread the state of the stack is undefined.
2808         To pop frames beyond the first,
2809         these three steps must be repeated:
2810         <ul>
2811           <li>suspend the thread via an event (step, breakpoint, ...)</li>
2812           <li>call <code>PopFrame</code></li>
2813           <li>resume the thread</li>
2814         </ul>
2815         <p/>
2816         A lock acquired by calling the called method
2817         (if it is a <code>synchronized</code>  method)
2818         and locks acquired by entering <code>synchronized</code>
2819         blocks within the called method are released.
2820         Note: this does not apply to native locks or
2821         <code>java.util.concurrent.locks</code> locks.
2822         <p/>
2823         Finally blocks are not executed.
2824         <p/>
2825         Changes to global state are not addressed and thus remain changed.
2826         <p/>
2827         The specified thread must be suspended or must be the current thread.
2828         <p/>
2829         Both the called method and calling method must be non-native Java programming
2830         language methods.
2831         <p/>
2832         No <jvmti/> events are generated by this function.
2833       </description>
2834       <origin>jvmdi</origin>
2835       <capabilities>
2836         <required id="can_pop_frame"></required>
2837       </capabilities>
2838       <parameters>
2839         <param id="thread">
2840           <jthread/>
2841             <description>
2842               The thread whose current frame is to be popped.
2843             </description>
2844         </param>
2845       </parameters>
2846       <errors>
2847         <error id="JVMTI_ERROR_OPAQUE_FRAME">
2848           Called or calling method is a native method.
2849           The implementation is unable to pop this frame.
2850         </error>
2851         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
2852           Thread was not suspended and was not the current thread.
2853         </error>
2854         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
2855           There are less than two stack frames on the call stack.
2856         </error>
2857       </errors>
2858     </function>
2859 
2860     <function id="GetFrameLocation" num="19">
2861       <synopsis>Get Frame Location</synopsis>
2862       <description>
2863         <p/>
2864         For a Java programming language frame, return the location of the instruction
2865         currently executing.
2866       </description>
2867       <origin>jvmdiClone</origin>
2868       <capabilities>
2869       </capabilities>
2870       <parameters>
2871         <param id="thread">
2872           <jthread null="current" frame="frame"/>


2893             executing instruction.
2894             Is set to <code>-1</code> if the frame is executing
2895             a native method.
2896           </description>
2897         </param>
2898       </parameters>
2899       <errors>
2900       </errors>
2901     </function>
2902 
2903     <function id="NotifyFramePop" num="20">
2904       <synopsis>Notify Frame Pop</synopsis>
2905       <description>
2906         When the frame that is currently at <paramlink id="depth"></paramlink>
2907         is popped from the stack, generate a
2908         <eventlink id="FramePop"></eventlink> event.  See the
2909         <eventlink id="FramePop"></eventlink> event for details.
2910         Only frames corresponding to non-native Java programming language
2911         methods can receive notification.
2912         <p/>
2913         The specified thread must be suspended or must be the current thread.

2914       </description>
2915       <origin>jvmdi</origin>
2916       <capabilities>
2917         <required id="can_generate_frame_pop_events"></required>
2918       </capabilities>
2919       <parameters>
2920         <param id="thread">
2921           <jthread null="current" frame="depth"/>
2922           <description>
2923             The thread of the frame for which the frame pop event will be generated.
2924           </description>
2925         </param>
2926         <param id="depth">
2927           <jframeID thread="thread"/>
2928           <description>
2929             The depth of the frame for which the frame pop event will be generated.
2930           </description>
2931         </param>
2932       </parameters>
2933       <errors>


3005             An object or <code>NULL</code>.
3006           </description>
3007         </param>
3008       </parameters>
3009       <errors>
3010         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3011           Attempted to return early from a frame
3012           corresponding to a native method.
3013           Or the implementation is unable to provide
3014           this functionality on this frame.
3015         </error>
3016         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3017           The result type of the called method is not
3018           <code>Object</code> or a subclass of <code>Object</code>.
3019         </error>
3020         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3021           The supplied <paramlink id="value"/> is not compatible with the
3022           result type of the called method.
3023         </error>
3024         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3025           Thread was not suspended and was not the current thread.
3026         </error>
3027         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3028           There are no more frames on the call stack.
3029         </error>
3030       </errors>
3031     </function>
3032 
3033     <function id="ForceEarlyReturnInt" num="82" since="1.1">
3034       <synopsis>Force Early Return - Int</synopsis>
3035       <description>
3036         This function can be used to return from a method whose
3037         result type is <code>int</code>, <code>short</code>,
3038         <code>char</code>, <code>byte</code>, or
3039         <code>boolean</code>.
3040       </description>
3041       <origin>new</origin>
3042       <capabilities>
3043         <required id="can_force_early_return"></required>
3044       </capabilities>
3045       <parameters>


3053           <jint/>
3054           <description>
3055             The return value for the called frame.
3056           </description>
3057         </param>
3058       </parameters>
3059       <errors>
3060         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3061           Attempted to return early from a frame
3062           corresponding to a native method.
3063           Or the implementation is unable to provide
3064           this functionality on this frame.
3065         </error>
3066         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3067           The result type of the called method is not
3068           <code>int</code>, <code>short</code>,
3069           <code>char</code>, <code>byte</code>, or
3070           <code>boolean</code>.
3071         </error>
3072         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3073           Thread was not suspended and was not the current thread.
3074         </error>
3075         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3076           There are no frames on the call stack.
3077         </error>
3078       </errors>
3079     </function>
3080 
3081     <function id="ForceEarlyReturnLong" num="83" since="1.1">
3082       <synopsis>Force Early Return - Long</synopsis>
3083       <description>
3084         This function can be used to return from a method whose
3085         result type is <code>long</code>.
3086       </description>
3087       <origin>new</origin>
3088       <capabilities>
3089         <required id="can_force_early_return"></required>
3090       </capabilities>
3091       <parameters>
3092         <param id="thread">
3093           <jthread null="current"/>


3096           </description>
3097         </param>
3098         <param id="value">
3099           <jlong/>
3100           <description>
3101             The return value for the called frame.
3102           </description>
3103         </param>
3104       </parameters>
3105       <errors>
3106         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3107           Attempted to return early from a frame
3108           corresponding to a native method.
3109           Or the implementation is unable to provide
3110           this functionality on this frame.
3111         </error>
3112         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3113           The result type of the called method is not <code>long</code>.
3114         </error>
3115         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3116           Thread was not suspended and was not the current thread.
3117         </error>
3118         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3119           There are no frames on the call stack.
3120         </error>
3121       </errors>
3122     </function>
3123 
3124     <function id="ForceEarlyReturnFloat" num="84" since="1.1">
3125       <synopsis>Force Early Return - Float</synopsis>
3126       <description>
3127         This function can be used to return from a method whose
3128         result type is <code>float</code>.
3129       </description>
3130       <origin>new</origin>
3131       <capabilities>
3132         <required id="can_force_early_return"></required>
3133       </capabilities>
3134       <parameters>
3135         <param id="thread">
3136           <jthread null="current"/>


3139           </description>
3140         </param>
3141         <param id="value">
3142           <jfloat/>
3143           <description>
3144             The return value for the called frame.
3145           </description>
3146         </param>
3147       </parameters>
3148       <errors>
3149         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3150           Attempted to return early from a frame
3151           corresponding to a native method.
3152           Or the implementation is unable to provide
3153           this functionality on this frame.
3154         </error>
3155         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3156           The result type of the called method is not <code>float</code>.
3157         </error>
3158         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3159           Thread was not suspended and was not the current thread.
3160         </error>
3161         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3162           There are no frames on the call stack.
3163         </error>
3164       </errors>
3165     </function>
3166 
3167     <function id="ForceEarlyReturnDouble" num="85" since="1.1">
3168       <synopsis>Force Early Return - Double</synopsis>
3169       <description>
3170         This function can be used to return from a method whose
3171         result type is <code>double</code>.
3172       </description>
3173       <origin>new</origin>
3174       <capabilities>
3175         <required id="can_force_early_return"></required>
3176       </capabilities>
3177       <parameters>
3178         <param id="thread">
3179           <jthread null="current"/>
3180           <description>
3181             The thread whose current frame is to return early.
3182           </description>
3183         </param>
3184         <param id="value">
3185           <jdouble/>
3186           <description>
3187             The return value for the called frame.
3188           </description>
3189         </param>
3190       </parameters>
3191       <errors>
3192         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3193           Attempted to return early from a frame corresponding to a native method.
3194           Or the implementation is unable to provide this functionality on this frame.
3195         </error>
3196         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3197           The result type of the called method is not <code>double</code>.
3198         </error>
3199         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3200           Thread was not suspended and was not the current thread.
3201         </error>
3202         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3203           There are no frames on the call stack.
3204         </error>
3205       </errors>
3206     </function>
3207 
3208     <function id="ForceEarlyReturnVoid" num="86" since="1.1">
3209       <synopsis>Force Early Return - Void</synopsis>
3210       <description>
3211         This function can be used to return from a method with no result type.
3212         That is, the called method must be declared <code>void</code>.
3213       </description>
3214       <origin>new</origin>
3215       <capabilities>
3216         <required id="can_force_early_return"></required>
3217       </capabilities>
3218       <parameters>
3219         <param id="thread">
3220           <jthread null="current"/>
3221           <description>
3222             The thread whose current frame is to return early.
3223           </description>
3224         </param>
3225       </parameters>
3226       <errors>
3227         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3228           Attempted to return early from a frame
3229           corresponding to a native method.
3230           Or the implementation is unable to provide
3231           this functionality on this frame.
3232         </error>
3233         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3234           The called method has a result type.
3235         </error>
3236         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3237           Thread was not suspended and was not the current thread.
3238         </error>
3239         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3240           There are no frames on the call stack.
3241         </error>
3242       </errors>
3243     </function>
3244 
3245   </category>
3246 
3247   <category id="Heap" label="Heap">
3248     <intro>
3249       These functions are used to analyze the heap.
3250       Functionality includes the ability to view the objects in the
3251       heap and to tag these objects.
3252     </intro>
3253 
3254     <intro id="objectTags" label="Object Tags">
3255       A <i>tag</i> is a value associated with an object.
3256       Tags are explicitly set by the agent using the
3257       <functionlink id="SetTag"></functionlink> function or by


14946       Clarified can_redefine_any_classes, can_retransform_any_classes and IsModifiableClass API to
14947       disallow some implementation defined classes.
14948   </change>
14949   <change date="12 February 2017" version="9.0.0">
14950       Minor update for GetCurrentThread function:
14951        - The function may return NULL in the start phase if the
14952          can_generate_early_vmstart capability is enabled.
14953   </change>
14954   <change date="7 February 2018" version="11.0.0">
14955       Minor update for new class file NestHost and NestMembers attributes:
14956         - Specify that RedefineClasses and RetransformClasses are not allowed
14957           to change the class file NestHost and NestMembers attributes.
14958         - Add new error JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED
14959           that can be returned by RedefineClasses and RetransformClasses.
14960   </change>
14961   <change date="20 May 2019" version="13.0.0">
14962       Minor spec update for the capability "can_redefine_any_class".
14963       It now says:
14964        "RedefineClasses can be called on any modifiable class. See IsModifiableClass.
14965        (can_redefine_classes must also be set)"
14966   </change>
14967   <change date="5 June 2019" version="13.0.0">
14968       Minor PopFrame spec update:
14969         - The specified thread must be suspended or must be the current thread.
14970           (It was not allowed to be the current thread before.)
14971   </change>
14972 </changehistory>
14973 
14974 </specification>
14975 <!-- Keep this comment at the end of the file
14976 Local variables:
14977 mode: sgml
14978 sgml-omittag:t
14979 sgml-shorttag:t
14980 sgml-namecase-general:t
14981 sgml-general-insert-case:lower
14982 sgml-minimize-attributes:nil
14983 sgml-always-quote-attributes:t
14984 sgml-indent-step:2
14985 sgml-indent-data:t
14986 sgml-parent-document:nil
14987 sgml-exposed-tags:nil
14988 sgml-local-catalogs:nil
14989 sgml-local-ecat-files:nil
14990 End:


2807         thread the state of the stack is undefined.
2808         To pop frames beyond the first,
2809         these three steps must be repeated:
2810         <ul>
2811           <li>suspend the thread via an event (step, breakpoint, ...)</li>
2812           <li>call <code>PopFrame</code></li>
2813           <li>resume the thread</li>
2814         </ul>
2815         <p/>
2816         A lock acquired by calling the called method
2817         (if it is a <code>synchronized</code>  method)
2818         and locks acquired by entering <code>synchronized</code>
2819         blocks within the called method are released.
2820         Note: this does not apply to native locks or
2821         <code>java.util.concurrent.locks</code> locks.
2822         <p/>
2823         Finally blocks are not executed.
2824         <p/>
2825         Changes to global state are not addressed and thus remain changed.
2826         <p/>
2827         The specified thread must be suspended (which implies it cannot be the current thread).
2828         <p/>
2829         Both the called method and calling method must be non-native Java programming
2830         language methods.
2831         <p/>
2832         No <jvmti/> events are generated by this function.
2833       </description>
2834       <origin>jvmdi</origin>
2835       <capabilities>
2836         <required id="can_pop_frame"></required>
2837       </capabilities>
2838       <parameters>
2839         <param id="thread">
2840           <jthread/>
2841             <description>
2842               The thread whose current frame is to be popped.
2843             </description>
2844         </param>
2845       </parameters>
2846       <errors>
2847         <error id="JVMTI_ERROR_OPAQUE_FRAME">
2848           Called or calling method is a native method.
2849           The implementation is unable to pop this frame.
2850         </error>
2851         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
2852           Thread was not suspended.
2853         </error>
2854         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
2855           There are less than two stack frames on the call stack.
2856         </error>
2857       </errors>
2858     </function>
2859 
2860     <function id="GetFrameLocation" num="19">
2861       <synopsis>Get Frame Location</synopsis>
2862       <description>
2863         <p/>
2864         For a Java programming language frame, return the location of the instruction
2865         currently executing.
2866       </description>
2867       <origin>jvmdiClone</origin>
2868       <capabilities>
2869       </capabilities>
2870       <parameters>
2871         <param id="thread">
2872           <jthread null="current" frame="frame"/>


2893             executing instruction.
2894             Is set to <code>-1</code> if the frame is executing
2895             a native method.
2896           </description>
2897         </param>
2898       </parameters>
2899       <errors>
2900       </errors>
2901     </function>
2902 
2903     <function id="NotifyFramePop" num="20">
2904       <synopsis>Notify Frame Pop</synopsis>
2905       <description>
2906         When the frame that is currently at <paramlink id="depth"></paramlink>
2907         is popped from the stack, generate a
2908         <eventlink id="FramePop"></eventlink> event.  See the
2909         <eventlink id="FramePop"></eventlink> event for details.
2910         Only frames corresponding to non-native Java programming language
2911         methods can receive notification.
2912         <p/>
2913         The specified thread must either be the current thread
2914         or the thread must be suspended.
2915       </description>
2916       <origin>jvmdi</origin>
2917       <capabilities>
2918         <required id="can_generate_frame_pop_events"></required>
2919       </capabilities>
2920       <parameters>
2921         <param id="thread">
2922           <jthread null="current" frame="depth"/>
2923           <description>
2924             The thread of the frame for which the frame pop event will be generated.
2925           </description>
2926         </param>
2927         <param id="depth">
2928           <jframeID thread="thread"/>
2929           <description>
2930             The depth of the frame for which the frame pop event will be generated.
2931           </description>
2932         </param>
2933       </parameters>
2934       <errors>


3006             An object or <code>NULL</code>.
3007           </description>
3008         </param>
3009       </parameters>
3010       <errors>
3011         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3012           Attempted to return early from a frame
3013           corresponding to a native method.
3014           Or the implementation is unable to provide
3015           this functionality on this frame.
3016         </error>
3017         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3018           The result type of the called method is not
3019           <code>Object</code> or a subclass of <code>Object</code>.
3020         </error>
3021         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3022           The supplied <paramlink id="value"/> is not compatible with the
3023           result type of the called method.
3024         </error>
3025         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3026           Thread was not the current thread and was not suspended.
3027         </error>
3028         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3029           There are no more frames on the call stack.
3030         </error>
3031       </errors>
3032     </function>
3033 
3034     <function id="ForceEarlyReturnInt" num="82" since="1.1">
3035       <synopsis>Force Early Return - Int</synopsis>
3036       <description>
3037         This function can be used to return from a method whose
3038         result type is <code>int</code>, <code>short</code>,
3039         <code>char</code>, <code>byte</code>, or
3040         <code>boolean</code>.
3041       </description>
3042       <origin>new</origin>
3043       <capabilities>
3044         <required id="can_force_early_return"></required>
3045       </capabilities>
3046       <parameters>


3054           <jint/>
3055           <description>
3056             The return value for the called frame.
3057           </description>
3058         </param>
3059       </parameters>
3060       <errors>
3061         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3062           Attempted to return early from a frame
3063           corresponding to a native method.
3064           Or the implementation is unable to provide
3065           this functionality on this frame.
3066         </error>
3067         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3068           The result type of the called method is not
3069           <code>int</code>, <code>short</code>,
3070           <code>char</code>, <code>byte</code>, or
3071           <code>boolean</code>.
3072         </error>
3073         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3074           Thread was not the current thread and was not suspended.
3075         </error>
3076         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3077           There are no frames on the call stack.
3078         </error>
3079       </errors>
3080     </function>
3081 
3082     <function id="ForceEarlyReturnLong" num="83" since="1.1">
3083       <synopsis>Force Early Return - Long</synopsis>
3084       <description>
3085         This function can be used to return from a method whose
3086         result type is <code>long</code>.
3087       </description>
3088       <origin>new</origin>
3089       <capabilities>
3090         <required id="can_force_early_return"></required>
3091       </capabilities>
3092       <parameters>
3093         <param id="thread">
3094           <jthread null="current"/>


3097           </description>
3098         </param>
3099         <param id="value">
3100           <jlong/>
3101           <description>
3102             The return value for the called frame.
3103           </description>
3104         </param>
3105       </parameters>
3106       <errors>
3107         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3108           Attempted to return early from a frame
3109           corresponding to a native method.
3110           Or the implementation is unable to provide
3111           this functionality on this frame.
3112         </error>
3113         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3114           The result type of the called method is not <code>long</code>.
3115         </error>
3116         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3117           Thread was not the current thread and was not suspended.
3118         </error>
3119         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3120           There are no frames on the call stack.
3121         </error>
3122       </errors>
3123     </function>
3124 
3125     <function id="ForceEarlyReturnFloat" num="84" since="1.1">
3126       <synopsis>Force Early Return - Float</synopsis>
3127       <description>
3128         This function can be used to return from a method whose
3129         result type is <code>float</code>.
3130       </description>
3131       <origin>new</origin>
3132       <capabilities>
3133         <required id="can_force_early_return"></required>
3134       </capabilities>
3135       <parameters>
3136         <param id="thread">
3137           <jthread null="current"/>


3140           </description>
3141         </param>
3142         <param id="value">
3143           <jfloat/>
3144           <description>
3145             The return value for the called frame.
3146           </description>
3147         </param>
3148       </parameters>
3149       <errors>
3150         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3151           Attempted to return early from a frame
3152           corresponding to a native method.
3153           Or the implementation is unable to provide
3154           this functionality on this frame.
3155         </error>
3156         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3157           The result type of the called method is not <code>float</code>.
3158         </error>
3159         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3160           Thread was not the current thread and was not suspended.
3161         </error>
3162         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3163           There are no frames on the call stack.
3164         </error>
3165       </errors>
3166     </function>
3167 
3168     <function id="ForceEarlyReturnDouble" num="85" since="1.1">
3169       <synopsis>Force Early Return - Double</synopsis>
3170       <description>
3171         This function can be used to return from a method whose
3172         result type is <code>double</code>.
3173       </description>
3174       <origin>new</origin>
3175       <capabilities>
3176         <required id="can_force_early_return"></required>
3177       </capabilities>
3178       <parameters>
3179         <param id="thread">
3180           <jthread null="current"/>
3181           <description>
3182             The thread whose current frame is to return early.
3183           </description>
3184         </param>
3185         <param id="value">
3186           <jdouble/>
3187           <description>
3188             The return value for the called frame.
3189           </description>
3190         </param>
3191       </parameters>
3192       <errors>
3193         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3194           Attempted to return early from a frame corresponding to a native method.
3195           Or the implementation is unable to provide this functionality on this frame.
3196         </error>
3197         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3198           The result type of the called method is not <code>double</code>.
3199         </error>
3200         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3201           Thread was not the current thread and was not suspended.
3202         </error>
3203         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3204           There are no frames on the call stack.
3205         </error>
3206       </errors>
3207     </function>
3208 
3209     <function id="ForceEarlyReturnVoid" num="86" since="1.1">
3210       <synopsis>Force Early Return - Void</synopsis>
3211       <description>
3212         This function can be used to return from a method with no result type.
3213         That is, the called method must be declared <code>void</code>.
3214       </description>
3215       <origin>new</origin>
3216       <capabilities>
3217         <required id="can_force_early_return"></required>
3218       </capabilities>
3219       <parameters>
3220         <param id="thread">
3221           <jthread null="current"/>
3222           <description>
3223             The thread whose current frame is to return early.
3224           </description>
3225         </param>
3226       </parameters>
3227       <errors>
3228         <error id="JVMTI_ERROR_OPAQUE_FRAME">
3229           Attempted to return early from a frame
3230           corresponding to a native method.
3231           Or the implementation is unable to provide
3232           this functionality on this frame.
3233         </error>
3234         <error id="JVMTI_ERROR_TYPE_MISMATCH">
3235           The called method has a result type.
3236         </error>
3237         <error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
3238           Thread was not the current thread and was not suspended.
3239         </error>
3240         <error id="JVMTI_ERROR_NO_MORE_FRAMES">
3241           There are no frames on the call stack.
3242         </error>
3243       </errors>
3244     </function>
3245 
3246   </category>
3247 
3248   <category id="Heap" label="Heap">
3249     <intro>
3250       These functions are used to analyze the heap.
3251       Functionality includes the ability to view the objects in the
3252       heap and to tag these objects.
3253     </intro>
3254 
3255     <intro id="objectTags" label="Object Tags">
3256       A <i>tag</i> is a value associated with an object.
3257       Tags are explicitly set by the agent using the
3258       <functionlink id="SetTag"></functionlink> function or by


14947       Clarified can_redefine_any_classes, can_retransform_any_classes and IsModifiableClass API to
14948       disallow some implementation defined classes.
14949   </change>
14950   <change date="12 February 2017" version="9.0.0">
14951       Minor update for GetCurrentThread function:
14952        - The function may return NULL in the start phase if the
14953          can_generate_early_vmstart capability is enabled.
14954   </change>
14955   <change date="7 February 2018" version="11.0.0">
14956       Minor update for new class file NestHost and NestMembers attributes:
14957         - Specify that RedefineClasses and RetransformClasses are not allowed
14958           to change the class file NestHost and NestMembers attributes.
14959         - Add new error JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED
14960           that can be returned by RedefineClasses and RetransformClasses.
14961   </change>
14962   <change date="20 May 2019" version="13.0.0">
14963       Minor spec update for the capability "can_redefine_any_class".
14964       It now says:
14965        "RedefineClasses can be called on any modifiable class. See IsModifiableClass.
14966        (can_redefine_classes must also be set)"





14967   </change>
14968 </changehistory>
14969 
14970 </specification>
14971 <!-- Keep this comment at the end of the file
14972 Local variables:
14973 mode: sgml
14974 sgml-omittag:t
14975 sgml-shorttag:t
14976 sgml-namecase-general:t
14977 sgml-general-insert-case:lower
14978 sgml-minimize-attributes:nil
14979 sgml-always-quote-attributes:t
14980 sgml-indent-step:2
14981 sgml-indent-data:t
14982 sgml-parent-document:nil
14983 sgml-exposed-tags:nil
14984 sgml-local-catalogs:nil
14985 sgml-local-ecat-files:nil
14986 End:
< prev index next >