protected void addProgramTextBlock(Program p) throws Throwable {
		try (Transaction tx = program.openTransaction("Add .text block")) {
			p.getMemory()
					.createInitializedBlock(".text", addr(p, 0x00400000), 0x1000, (byte) 0, monitor,
						false);
		}
		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