On Wed, 23 Apr 2025 21:12:23 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.
>
> Chris Plummer has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Add comment

Marked as reviewed by amenkov (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/24811#pullrequestreview-2788756114

Reply via email to