Details
-
Bug
-
Resolution: Fixed
-
P3
-
9
-
b120
-
Verified
Description
java.lang.LiveStackFrame is an experimental API to access locals, operands and monitors of a live stack frame.
LiveStackFrame::getLocals returns an array of the local slots of a live stack frame, similar for getStack and getMonitors methods.
The VM implementation uses javaVFrame::locals(), javaVFrame::expressions() and jjavaVFrame::monitors() methods.
It's observed that the returned StackValueCollection for locals and operands are different when running in interpreted frame and compiled frames and also different for C1 and C2.
1. for long, double local, it occupies two slots. -Xint mode, the value of a long/double local variable obtained from a pair of two local slots matches the expected value.
The value is incorrect on a compiled frame.
2. The ordering of locals does not match the index in the bytecode
LiveStackFrame::getLocals returns an array of the local slots of a live stack frame, similar for getStack and getMonitors methods.
The VM implementation uses javaVFrame::locals(), javaVFrame::expressions() and jjavaVFrame::monitors() methods.
It's observed that the returned StackValueCollection for locals and operands are different when running in interpreted frame and compiled frames and also different for C1 and C2.
1. for long, double local, it occupies two slots. -Xint mode, the value of a long/double local variable obtained from a pair of two local slots matches the expected value.
The value is incorrect on a compiled frame.
2. The ordering of locals does not match the index in the bytecode
Attachments
Issue Links
- duplicates
-
JDK-8144851 java/lang/StackWalker/LocalsAndOperands.java: SEGV in StackValue::create_stack_value
- Closed
- relates to
-
JDK-8156652 CountLocalSlots: testLocals(): number of locals (2) did not match expected (8)
- Resolved
-
JDK-8156651 SIGSEGV in StackValue::create_stack_value
- Closed
-
JDK-8165372 StackWalker performance regression following JDK-8147039
- Closed
-
JDK-8156073 2-slot LiveStackFrame locals (long and double) are incorrect
- Closed
-
JDK-8043814 JEP 259: Stack-Walking API
- Closed
(1 relates to)