Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8147039

Incorrect locals and operands in compiled frames

    Details

    • Subcomponent:
    • Resolved In Build:
      b120
    • Verification:
      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

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                bchristi Brent Christian
                Reporter:
                mchung Mandy Chung
              • Votes:
                0 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: