RFR: 8269770: nsk tests should start IOPipe channel before launch debuggee - Debugee.prepareDebugee [v2]

Kevin Walls kevinw at openjdk.java.net
Fri Aug 27 17:26:27 UTC 2021


On Fri, 2 Jul 2021 19:30:11 GMT, Alex Menkov <amenkov at openjdk.org> wrote:

>> The change fixes several hundreds tests which launch debugee by using uses Debugee.prepareDebugee() method or use 
>> debugee = Binder.bindToDebugee(...);
>> IOPipe pipe = debugee.createIOPipe();
>> logic.
>> Debugee.prepareDebugee() and Binder.bindToDebugee() launch debuggee by using CommandLineLaunch JDI connector with suspend=="true" argument, so they return debuggee suspended before the main class is loaded.
>> The fix starts IOPipe listening before debuggee VM is resumed.
>> 
>> Simplified isPackagePrivate/accipp001.java test to use Debugee.prepareDebugee() - it does exactly the same as Debugee.prepareDebugee() does (the only difference is using deprecated IOPipe ctor instead of Debugee.createIOPipe())
>> 
>> Tested all affected tests:
>> test/hotspot/jtreg/vmTestbase/nsk/jdi
>> test/hotspot/jtreg/vmTestbase/nsk/jdwp
>> test/hotspot/jtreg/serviceability/dcmd
>
> Alex Menkov has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fixed comment

Marked as reviewed by kevinw (Committer).

OK...  New to me but I think I follow enough to sanity check this.

I found that e.g. vmTestbase/nsk/share/jdi/Debugee.java defines prepareDebuggee() which calls debugee.createIOPipe(), which is changed here.
Previously, DebugeeProcess.java uses an IOPipe constructor which is marked deprecated.
Now calls IOPipe.startDebuggerPipe(Binder binder), which calls startListening().
In accipp001.java the prepareDebugee() call in runThis() handles everything it used to do itself.

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

PR: https://git.openjdk.java.net/jdk/pull/4659


More information about the serviceability-dev mailing list