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