Skip to content

Commit a65d953

Browse files
author
Serguei Spitsyn
committed
8309399: JVMTI spec needs to clarify when OPAQUE_FRAME is thrown for reasons other than a native method
Reviewed-by: cjplummer
1 parent 20b5f09 commit a65d953

File tree

1 file changed

+37
-80
lines changed

1 file changed

+37
-80
lines changed

src/hotspot/share/prims/jvmti.xml

Lines changed: 37 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -2987,12 +2987,8 @@ err = (*jvmti)->Deallocate(jvmti, stack_info);
29872987
</parameters>
29882988
<errors>
29892989
<error id="JVMTI_ERROR_OPAQUE_FRAME">
2990-
Called or calling method is a native method.
2991-
The implementation is unable to pop this frame.
2992-
</error>
2993-
<error id="JVMTI_ERROR_OPAQUE_FRAME">
2994-
The thread is a suspended virtual thread and the implementation
2995-
was unable to pop the current frame.
2990+
The implementation is unable to pop this frame
2991+
(e.g. called or calling method is a native method).
29962992
</error>
29972993
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
29982994
Thread was not suspended and was not the current thread.
@@ -3078,8 +3074,8 @@ err = (*jvmti)-&gt;Deallocate(jvmti, stack_info);
30783074
</parameters>
30793075
<errors>
30803076
<error id="JVMTI_ERROR_OPAQUE_FRAME">
3081-
The frame at <code>depth</code> is executing a
3082-
native method.
3077+
A <eventlink id="FramePop"></eventlink> event cannot be generated for this frame
3078+
(e.g. the frame at <code>depth</code> is executing a native method).
30833079
</error>
30843080
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
30853081
Thread was not suspended and was not the current thread.
@@ -3188,12 +3184,8 @@ err = (*jvmti)-&gt;Deallocate(jvmti, stack_info);
31883184
</parameters>
31893185
<errors>
31903186
<error id="JVMTI_ERROR_OPAQUE_FRAME">
3191-
Attempted to return early from a frame
3192-
corresponding to a native method.
3193-
The thread is a suspended virtual thread and the implementation was
3194-
unable to force its current frame to return.
3195-
Or the implementation is unable to provide
3196-
this functionality on this frame.
3187+
The implementation is unable to force the current frame to return
3188+
(e.g. current frame is executing a native method).
31973189
</error>
31983190
<error id="JVMTI_ERROR_TYPE_MISMATCH">
31993191
The result type of the called method is not
@@ -3240,12 +3232,8 @@ err = (*jvmti)-&gt;Deallocate(jvmti, stack_info);
32403232
</parameters>
32413233
<errors>
32423234
<error id="JVMTI_ERROR_OPAQUE_FRAME">
3243-
Attempted to return early from a frame
3244-
corresponding to a native method.
3245-
The thread is a suspended virtual thread and the implementation was
3246-
unable to force its current frame to return.
3247-
Or the implementation is unable to provide
3248-
this functionality on this frame.
3235+
The implementation is unable to force the current frame to return
3236+
(e.g. current frame is executing a native method).
32493237
</error>
32503238
<error id="JVMTI_ERROR_TYPE_MISMATCH">
32513239
The result type of the called method is not
@@ -3288,12 +3276,8 @@ err = (*jvmti)-&gt;Deallocate(jvmti, stack_info);
32883276
</parameters>
32893277
<errors>
32903278
<error id="JVMTI_ERROR_OPAQUE_FRAME">
3291-
Attempted to return early from a frame
3292-
corresponding to a native method.
3293-
The thread is a suspended virtual thread and the implementation was
3294-
unable to force its current frame to return.
3295-
Or the implementation is unable to provide
3296-
this functionality on this frame.
3279+
The implementation is unable to force the current frame to return
3280+
(e.g. current frame is executing a native method).
32973281
</error>
32983282
<error id="JVMTI_ERROR_TYPE_MISMATCH">
32993283
The result type of the called method is not <code>long</code>.
@@ -3333,12 +3317,8 @@ err = (*jvmti)-&gt;Deallocate(jvmti, stack_info);
33333317
</parameters>
33343318
<errors>
33353319
<error id="JVMTI_ERROR_OPAQUE_FRAME">
3336-
Attempted to return early from a frame
3337-
corresponding to a native method.
3338-
The thread is a suspended virtual thread and the implementation was
3339-
unable to force its current frame to return.
3340-
Or the implementation is unable to provide
3341-
this functionality on this frame.
3320+
The implementation is unable to force the current frame to return
3321+
(e.g. current frame is executing a native method).
33423322
</error>
33433323
<error id="JVMTI_ERROR_TYPE_MISMATCH">
33443324
The result type of the called method is not <code>float</code>.
@@ -3378,12 +3358,8 @@ err = (*jvmti)-&gt;Deallocate(jvmti, stack_info);
33783358
</parameters>
33793359
<errors>
33803360
<error id="JVMTI_ERROR_OPAQUE_FRAME">
3381-
Attempted to return early from a frame
3382-
corresponding to a native method.
3383-
The thread is a suspended virtual thread and the implementation was
3384-
unable to force its current frame to return.
3385-
Or the implementation is unable to provide
3386-
this functionality on this frame.
3361+
The implementation is unable to force the current frame to return
3362+
(e.g. current frame is executing a native method).
33873363
</error>
33883364
<error id="JVMTI_ERROR_TYPE_MISMATCH">
33893365
The result type of the called method is not <code>double</code>.
@@ -3417,12 +3393,8 @@ err = (*jvmti)-&gt;Deallocate(jvmti, stack_info);
34173393
</parameters>
34183394
<errors>
34193395
<error id="JVMTI_ERROR_OPAQUE_FRAME">
3420-
Attempted to return early from a frame
3421-
corresponding to a native method.
3422-
The thread is a suspended virtual thread and the implementation was
3423-
unable to force its current frame to return.
3424-
Or the implementation is unable to provide
3425-
this functionality on this frame.
3396+
The implementation is unable to force the current frame to return
3397+
(e.g. current frame is executing a native method).
34263398
</error>
34273399
<error id="JVMTI_ERROR_TYPE_MISMATCH">
34283400
The called method has a result type.
@@ -5928,7 +5900,8 @@ class C2 extends C1 implements I2 {
59285900
<code>Object</code> or a subclass of <code>Object</code>.
59295901
</error>
59305902
<error id="JVMTI_ERROR_OPAQUE_FRAME">
5931-
Not a visible frame
5903+
The implementation is unable to get the frame locals
5904+
(e.g. the frame at <code>depth</code> is executing a native method).
59325905
</error>
59335906
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
59345907
Thread was not suspended and was not the current thread.
@@ -6031,7 +6004,8 @@ class C2 extends C1 implements I2 {
60316004
<code>boolean</code>.
60326005
</error>
60336006
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6034-
Not a visible frame
6007+
The implementation is unable to get the frame locals
6008+
(e.g. the frame at <code>depth</code> is executing a native method).
60356009
</error>
60366010
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
60376011
Thread was not suspended and was not the current thread.
@@ -6085,7 +6059,8 @@ class C2 extends C1 implements I2 {
60856059
The variable type is not <code>long</code>.
60866060
</error>
60876061
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6088-
Not a visible frame
6062+
The implementation is unable to get the frame locals
6063+
(e.g. the frame at <code>depth</code> is executing a native method).
60896064
</error>
60906065
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
60916066
Thread was not suspended and was not the current thread.
@@ -6139,7 +6114,8 @@ class C2 extends C1 implements I2 {
61396114
The variable type is not <code>float</code>.
61406115
</error>
61416116
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6142-
Not a visible frame
6117+
The implementation is unable to get the frame locals
6118+
(e.g. the frame at <code>depth</code> is executing a native method).
61436119
</error>
61446120
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
61456121
Thread was not suspended and was not the current thread.
@@ -6193,7 +6169,8 @@ class C2 extends C1 implements I2 {
61936169
The variable type is not <code>double</code>.
61946170
</error>
61956171
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6196-
Not a visible frame
6172+
The implementation is unable to get the frame locals
6173+
(e.g. the frame at <code>depth</code> is executing a native method).
61976174
</error>
61986175
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
61996176
Thread was not suspended and was not the current thread.
@@ -6252,12 +6229,8 @@ class C2 extends C1 implements I2 {
62526229
with the variable type.
62536230
</error>
62546231
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6255-
Not a visible frame
6256-
</error>
6257-
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6258-
The thread is a suspended virtual thread and the implementation does not support
6259-
setting the value of locals in the frame of the given depth.
6260-
See <internallink id="local">Local Variables</internallink>.
6232+
The implementation is unable to set the frame locals
6233+
(e.g. the frame at <code>depth</code> is executing a native method).
62616234
</error>
62626235
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
62636236
Thread was not suspended and was not the current thread.
@@ -6316,12 +6289,8 @@ class C2 extends C1 implements I2 {
63166289
<code>boolean</code>.
63176290
</error>
63186291
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6319-
Not a visible frame
6320-
</error>
6321-
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6322-
The thread is a suspended virtual thread and the implementation does not support
6323-
setting the value of locals in the frame of the given depth.
6324-
See <internallink id="local">Local Variables</internallink>.
6292+
The implementation is unable to set the frame locals
6293+
(e.g. the frame at <code>depth</code> is executing a native method).
63256294
</error>
63266295
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
63276296
Thread was not suspended and was not the current thread.
@@ -6375,12 +6344,8 @@ class C2 extends C1 implements I2 {
63756344
The variable type is not <code>long</code>.
63766345
</error>
63776346
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6378-
Not a visible frame
6379-
</error>
6380-
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6381-
The thread is a suspended virtual thread and the implementation does not support
6382-
setting the value of locals in the frame of the given depth.
6383-
See <internallink id="local">Local Variables</internallink>.
6347+
The implementation is unable to set the frame locals
6348+
(e.g. the frame at <code>depth</code> is executing a native method).
63846349
</error>
63856350
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
63866351
Thread was not suspended and was not the current thread.
@@ -6434,12 +6399,8 @@ class C2 extends C1 implements I2 {
64346399
The variable type is not <code>float</code>.
64356400
</error>
64366401
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6437-
Not a visible frame
6438-
</error>
6439-
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6440-
The thread is a suspended virtual thread and the implementation does not support
6441-
setting the value of locals in the frame of the given depth.
6442-
See <internallink id="local">Local Variables</internallink>.
6402+
The implementation is unable to set the frame locals
6403+
(e.g. the frame at <code>depth</code> is executing a native method).
64436404
</error>
64446405
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
64456406
Thread was not suspended and was not the current thread.
@@ -6493,12 +6454,8 @@ class C2 extends C1 implements I2 {
64936454
The variable type is not <code>double</code>.
64946455
</error>
64956456
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6496-
Not a visible frame
6497-
</error>
6498-
<error id="JVMTI_ERROR_OPAQUE_FRAME">
6499-
The thread is a suspended virtual thread and the implementation does not support
6500-
setting the value of locals in the frame of the given depth.
6501-
See <internallink id="local">Local Variables</internallink>.
6457+
The implementation is unable to set the frame locals
6458+
(e.g. the frame at <code>depth</code> is executing a native method).
65026459
</error>
65036460
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
65046461
Thread was not suspended and was not the current thread.
@@ -12050,7 +12007,7 @@ myInit() {
1205012007
</errorid>
1205112008
<errorid id="JVMTI_ERROR_OPAQUE_FRAME" num="32">
1205212009
Information about the frame is not available (e.g. for native frames),
12053-
or the function cannot be performed on the thread's current frame.
12010+
or the implementation is unable to provide this functionality on this frame.
1205412011
</errorid>
1205512012
<errorid id="JVMTI_ERROR_DUPLICATE" num="40">
1205612013
Item already set.

0 commit comments

Comments
 (0)