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