protected void addProgramBreakpoints(Program p) throws Throwable {
		try (Transaction tx = p.openTransaction("Create bookmarks")) {
			enBm = p.getBookmarkManager()
					.setBookmark(addr(p, 0x00400123), LogicalBreakpoint.ENABLED_BOOKMARK_TYPE,
						"SW_EXECUTE;1", "");
			disBm = p.getBookmarkManager()
					.setBookmark(addr(p, 0x00400321), LogicalBreakpoint.DISABLED_BOOKMARK_TYPE,
						"SW_EXECUTE;1", "");
		}
		waitForDomainObject(p);
	}
Tracks the current set of logical breakpoints.

<p>
Its assertions require perfection in the sequence of events: 1) No double-adds. 2) No
double-removes. 3) No extraneous updates. At the end of each test, the current set of
breakpoints in this listener should be verified against those reported by the service.
Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/service/breakpoint/AbstractDebuggerLogicalBreakpointServiceTest.java