RFR (M): 8026328: Setting a breakpoint on invokedynamic crashes the JVM
Christian Thalinger
christian.thalinger at oracle.com
Tue Oct 22 16:16:38 PDT 2013
On Oct 22, 2013, at 4:11 PM, John Rose <john.r.rose at oracle.com> wrote:
> Reviewed. Nice fix, and very nice cleanups.
Thank you, John.
>
> Thanks for nuking those stray "0xFF" constants along the way.
Yeah, it's easier to understand now.
>
> — John
>
> On Oct 22, 2013, at 3:31 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
>
>> https://bugs.openjdk.java.net/browse/JDK-8026328
>> http://cr.openjdk.java.net/~twisti/8026328/webrev.00/
>>
>> 8026328: Setting a breakpoint on invokedynamic crashes the JVM
>> Reviewed-by:
>>
>> Well-known invoke instructions have a 2-byte index but invokedynamic has a 4-byte index. In return entries we check the bytecode instruction to decide which size the index has.
>>
>> The problem is that if there is a breakpoint there is no way to know what index size the instruction has because the original instruction byte was replaced with the breakpoint byte.
>>
>> There are a couple of ways to fix this but the proper way (in my opinion) is to have separate return entries for the different classes of invoke instructions. This on one hand generates more return entries but on the other hand makes them smaller and simpler.
>>
>
More information about the hotspot-compiler-dev
mailing list