RFR: 8309399: JVMTI spec needs to clarify when OPAQUE_FRAME is thrown for reasons other than a native method [v3]

Serguei Spitsyn sspitsyn at openjdk.org
Wed Jul 9 04:18:45 UTC 2025


On Mon, 7 Jul 2025 21:06:22 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:

>> src/hotspot/share/prims/jvmti.xml line 3082:
>> 
>>> 3080:         <error id="JVMTI_ERROR_OPAQUE_FRAME">
>>> 3081:           The implementation is unable to set a <eventlink id="FramePop"></eventlink> event for the frame
>>> 3082:           (e.g. the frame at <code>depth</code> is executing a native method).
>> 
>> I don't think this sounds right. You don't "set" a FramePop event. You tell JVMTI to generate a FramePop event when this frame is popped. Maybe something like "A FramePop event cannot be generated for this frame".
>
> Thank you for the comment.
> The `NotifyFramePop` is similar to `SetBreakpoint`. I'd even prefer it to be named accordingly: `SetFramePop` instead of `NotifyFramePop`.  Unfortunately, we can't easily rename API's by compatibility reasons.  We enable any kinds of events with `SetEventNotoficationMode` but these are two cases where we need to be precise in setting the events. The `SetBreakpoint` is to set a breakpoint notification at a specific method's bytecode. The `NotifyFramePop` is to set `FramePop` notification for a specific frame. So, I' prefer to keep the terminology similar for `Breakpoints` and `FramePop` events.

Chris, please, let me know if it is okay to keep this at is or you still want an update for the `NotifyFramePop`.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/26111#discussion_r2193975815


More information about the serviceability-dev mailing list