RFR 8173309: jvmtiDeferredLocalVariableSet may update the wrong frame

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Jan 25 01:25:53 UTC 2017


Tom,

You increase compiled frame id when sender is also compiled frame. What if there other frames (interpreter) between compiled frames?

Thanks,
Vladimir

On 1/24/17 5:06 PM, Tom Rodriguez wrote:
> http://cr.openjdk.java.net/~never/8173309/webrev
> https://bugs.openjdk.java.net/browse/JDK-8173309
>
> When using jvmtiDeferredLocalVariableSet to update locals in a compiled frame, the code matches based purely on the method/bci pair. If some recursion has been inlined then it will update the first frame that matches instead of the intended frame. The code should be tracking the actual depth that the compilerVFrame came from instead.  The JVMCI operation materializeVirtualObjects uses this code when forcibly materializing EA’ed objects.  Normally this would only be noticed by debugger clients.  Tested with failing case from Graal.
>
> tom
>


More information about the hotspot-compiler-dev mailing list