> StackFrame.SetValues, StackFrame.GetValues, ThreadReference.PopFrames, and > ThreadReference.ForceEarlyReturn all need updated language related to > OPAQUE_FRAME error. > > (1) The spec for JVMTI says the following for GetLocalsXXX and SetLocalsXXX > > The implementation is unable to set the frame locals > (e.g. the frame at depth is executing a native method). > > However, the JDWP StackFrame.SetValues and GetValues commands only mention > OPAQUE_FRAME for SetValues when not called for the topmost frame of a virtual > thread suspended at an event. I don't think there is anything to prevent > OPAQUE_FRAME due to the thread being native or some other reason as mentioned > in the JVMTI spec. The JDWP spec should be updated to reflect this. > > (1) The spec for JVMTI says the following for PopFrame and ForceEarlyReturn: > > The implementation is unable to force the current frame to return > (e.g. current frame is executing a native method). > > However, the JDWP ThreadReference.PopFrames, and > ThreadReference.ForceEarlyReturn commands only mention OPAQUE_FRAME when this > commands are not called for the topmost frame of a virtual thread suspended > at an event. I don't think there is anything to prevent OPAQUE_FRAME due to > the thread being native or some other reason as mentioned in the JVMTI spec. > The JDWP spec should be updated to reflect this. > > (3) Another issue is that INVALID_SLOT is missing in the JDWP spec for > SetValues, but is there for GetValues. It should be mentioned for both > commands.
Chris Plummer has updated the pull request incrementally with one additional commit since the last revision: make workding more like JVMTI spec ------------- Changes: - all: https://git.openjdk.org/jdk/pull/26336/files - new: https://git.openjdk.org/jdk/pull/26336/files/27bfb72a..b99935a0 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=26336&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26336&range=00-01 Stats: 16 lines in 1 file changed: 0 ins; 7 del; 9 mod Patch: https://git.openjdk.org/jdk/pull/26336.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/26336/head:pull/26336 PR: https://git.openjdk.org/jdk/pull/26336