@Test
	public void testReplicateNpeScenario() throws Exception {
		ByteBuffer buf4k = ByteBuffer.allocate(0x1000);
		AddressSetView set = b.set(
			b.range(0x00400000, 0x00404fff),
			b.range(0x00605000, 0x00606fff),
			b.range(0x7ffff7a2c000L, 0x7ffff7a33fffL));
		Random random = new Random();
		for (int i = 0; i < 30; i++) {
			try (Transaction tx = b.startTransaction()) {
				for (int j = 0; j < 3; j++) {
					for (AddressRange r : set) {
						for (AddressRange rc : new AddressRangeChunker(r, 0x1000)) {
							if (random.nextInt(100) < 20) {
								memory.setState(0, rc, TraceMemoryState.ERROR);
								continue;
							}
							buf4k.position(0);
							buf4k.limit(0x1000);
							memory.putBytes(0, rc.getMinAddress(), buf4k);
						}
					}
				}
			}

			try (Transaction tx = b.startTransaction()) {
				memory.setState(0, b.range(0, -1), TraceMemoryState.UNKNOWN);
			}
		}
	}
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