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

Incorrect locals and operands in compiled frames

    XMLWordPrintable

Details

    • 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

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: