@Test
	public void testOverlaySpaces() throws Exception {
		try (Transaction tx = b.startTransaction()) {
			AddressSpace os = memory.createOverlayAddressSpace("test",
				b.trace.getBaseAddressFactory().getDefaultAddressSpace());
			DBTraceMemorySpace space = memory.getMemorySpace(os, true);
			assertEquals(4, space.putBytes(0, os.getAddress(0x4000), b.buf(1, 2, 3, 4)));

			ByteBuffer read = ByteBuffer.allocate(4);
			// This is from original space, not overlay, so should be 0s
			assertEquals(4, memory.getBytes(0, b.addr(0x4000), read));
			assertArrayEquals(b.arr(0, 0, 0, 0), read.array());
			read.clear();

			assertEquals(4, space.getBytes(0, os.getAddress(0x4000), read));
			assertArrayEquals(b.arr(1, 2, 3, 4), read.array());
		}
	}
This test gets down into the block buffer implementation. If the block number exceeds
127, if might (accidentally) get treated as negative. Thanks Java! We can create this
situation by writing to the same b.address at more than 127 different snaps.
Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/memory/AbstractDBTraceMemoryManagerMemoryTest.java