-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8309399: JVMTI spec needs to clarify when OPAQUE_FRAME is thrown for reasons other than a native method #26111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
…reasons other than a native method
👋 Welcome back sspitsyn! A progress list of the required criteria for merging this PR into |
❗ This change is not yet ready to be integrated. |
Webrevs
|
The implementation is unable to set a <eventlink id="FramePop"></eventlink> event for the frame | ||
(e.g. the frame at <code>depth</code> is executing a native method). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Chris, please, let me know if it is okay to keep this at is or you still want an update for the NotifyFramePop
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I understand what you are saying about the comparison to SetBreakpoint and that SetFramePop would have been a better name, but I don't see what this with the description. I said "set a FramePop event" doesn't sound right. Neither would "set a Breakpoint event". Also, the analogy with breakpoints doesn't really work when you consider that "a breakpoint" is meaningful, but "a FrampPop" does not.
A breakpoint is a location in the code where a breakpoint event will be triggered when executed. That analogy doesn't really work with FramePop. We don't have a word similar to breakpoint that means "a frame marked for generating a FramePop event when popped".
…nd SetLocal* with other functions
I've decided to also unify the |
It was decided in a local discussion with Chris and Alan to update the JVMTI spec to make descriptions/clarifications of some
JVMTI_ERROR_OPAQUE_FRAME
cases more consistent.This impacts the following JVMTI spec sections:
PopFrame
NotifyFramePop
ForceEarlyReturn<Type>
GetLocal<Type>
SetLocal<Type>
JVMTI_ERROR_OPAQUE_FRAME
error codeA related CSR is going to be filed for this spec update.
Testing:
Progress
Issues
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/26111/head:pull/26111
$ git checkout pull/26111
Update a local copy of the PR:
$ git checkout pull/26111
$ git pull https://git.openjdk.org/jdk.git pull/26111/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 26111
View PR using the GUI difftool:
$ git pr show -t 26111
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/26111.diff
Using Webrev
Link to Webrev Comment