RFR: 8293143: Workaround for JDK-8292217 when doing "step over" of bytecode with unresolved cp referernce

Serguei Spitsyn sspitsyn at openjdk.org
Tue Sep 20 21:40:50 UTC 2022


On Wed, 31 Aug 2022 00:25:20 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:

> There is a workaround we can do for [JDK-8292217](https://bugs.openjdk.org/browse/JDK-8292217) for the use case where a step over or step out is being done. This workaround can't be made to also work for the step into case. From [JDK-8292217](https://bugs.openjdk.org/browse/JDK-8292217)
> 
> "There is a workaround that fixes this issue when doing a STEP_OVER or STEP_OUT. Rather than the debug agent checking if it has enabled JVMTI single stepping, instead it checks some fields in the ThreadNode that say if single stepping is pending, and it is for a STEP_INTO. If it is not STEP_INTO, then it can assume that no StepEvent will occur at the same location and therefor the MethodEntryEvent should not be deferred. So this limits the bug to only happening when doing a STEP_INTO. "

test/jdk/com/sun/jdi/CLETest.java line 226:

> 224:                 System.out.println("TESTCASE #" + testcase + " FAILED" +
> 225:                                    (testcase == 2 ? "(ignoring)" : "") +
> 226:                                    ": too many events in EventSet: " + set.size());

The comment says there is a workaround in place allowing the 1st test case to pass.
However, the 1st test case is marked as failed at the line 222 and the produced message says it is ignoring the 2nd test case. I'm confused. Do I miss anything?

-------------

PR: https://git.openjdk.org/jdk/pull/10091


More information about the serviceability-dev mailing list