RFR: 8308237: add JDWP and JDI virtual thread support for ThreadReference.PopFrames [v7]

Serguei Spitsyn sspitsyn at openjdk.org
Tue May 23 06:22:53 UTC 2023


On Mon, 22 May 2023 21:56:43 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:

>> This is a follow-on to [JDK-8308000](https://bugs.openjdk.org/browse/JDK-8308000) which adds JVMTI PopFrames support for virtual thread. For JDWP and JDI this is mostly a spec update, although JDI needs minor changes to properly throw the correct exception. Note this PR needs JDK-8264699 in order to function properly, so there may be some GHA failures until JDK-8308000 is pushed.
>> 
>> There are a large number of tests that can now be removed from the problem list. Also, one test needs to be modified to no longer expect OpaqueFrameException for virtual threads. It was just revereted back to it's previous form before the OpaqueFrameException support was added for virtual threads.
>> 
>> As you can see from the problemlist update, there are quite a few tests for popFrames() support. However, there were no existing tests for throwing NativeMethodException, nor ones that would expose the new OpaqueFrameException when the virtual thread is suspended but not mounted. I've added a test that cover these.
>> 
>> For the new test I added, I needed the fix for:
>> 
>> [JDK-8308481](https://bugs.openjdk.org/browse/JDK-8308481): JDI TestScaffold does not support passing app arguments to the debuggee
>> 
>> So I've included it with this PR.
>
> Chris Plummer has updated the pull request incrementally with one additional commit since the last revision:
> 
>   fix jcheck error.

test/jdk/com/sun/jdi/PopFramesTest.java line 65:

> 63:  *
> 64:  * Call stacks for each test mode (and expected result):
> 65:  *  - Note in all cases the popMethod() frame is the frame passed to popFrames()..

Nit: Is there an extra dot at the end it was intentional?
       The lines 54-58 are inconsistent with dots at the end.

test/jdk/com/sun/jdi/PopFramesTest.java line 173:

> 171:         }
> 172: 
> 173:         System.out.println("    debuggee: Goodbye from PopAndInvokeTarg!");

Nit: I guess, `PopAndInvokeTarg` was intended to be renamed.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14022#discussion_r1201586907
PR Review Comment: https://git.openjdk.org/jdk/pull/14022#discussion_r1201589299


More information about the serviceability-dev mailing list