On Wed, 23 Apr 2025 03:14:52 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

> There is an nsk/jdi superclass called JDIBase that many tests inherit from. 
> It provides common functionality like log support, basic event handling, 
> support for setting a breakpoint, and support for the communication 
> breakpoint that the debugger and debuggee use to synchronize with. disable001 
> does not inherit from JDIBase and instead implements all this functionality 
> in the test. The reason is because it provides a slightly modified version of 
> the JDIBase.settingBreakpoint() method. The main change is the presence of 
> the following in settingBreakpoint():
> 
> 
> // this is only for this test to get Location object
> location = lineLocation;
> 
> 
> And then in the test:
> 
> 
>               case 11:
>                      log2(".....setting up BreakpointRequest");
>                      eventRequest1 = 
> eventRManager.createBreakpointRequest(location);
>                      break;
> 
> 
> However, now JDIBase.settingBreakpoint() now contains:
> 
> 
>                 lineLocation = (Location) alllineLocations.get(n);
>                 breakpLocation = lineLocation;
> 
> 
> So the test can just use breakpLocation instead. This pattern is already 
> replicated in a large number of tests.
> 
> The other difference in the disable001 version of settingBreakpoint() is that 
> is uses SUSPEND_ALL rather than SUSPEND_EVENT_THREAD. This is easily fixed 
> after setting up the breakpoint request:
> 
>         BreakpointRequest bpRequest = settingBreakpoint(mainThread,
>                                              debuggeeClass,
>                                             bPointMethod, lineForComm, 
> "zero");
>         bpRequest.setSuspendPolicy(EventRequest.SUSPEND_ALL);
> 
> The test uses JDIBase now and all the code replicated from JDIBase has been 
> stripped out. It is also updated to use the new 
> JDIBase.setupBreakpointForCommunication() method.

test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequest/disable/disable001.java line 
250:

> 248:             setupBreakpointForCommunication(debuggeeClass);
> 249:         bpRequest.disable();
> 250:         bpRequest.setSuspendPolicy(EventRequest.SUSPEND_ALL);

Could you please add a comment that setupBreakpointForCommunication creates 
request with SUSPEND_EVENT_THREAD policy, need to change it to SUSPEND_ALL

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24811#discussion_r2056795724

Reply via email to