@Override
		public byte[] read(long offset, int size, Reason reason) {
			ULongSpanSet uninitialized =
				bytes.getUninitialized(offset, offset + size - 1);
			if (!uninitialized.isEmpty()) {
				size = checkUninitialized(backing, space.getAddress(offset), size,
					addrSet(uninitialized));
			}
			return super.read(offset, size, reason);
		}
A state piece which can check for uninitialized reads

<p>
Depending on the use case, it may be desirable to ensure all reads through the course of
emulation are from initialized parts of memory. For traces, there's an additional consideration
as to whether the values are present, but stale. Again, depending on the use case, that may be
acceptable. See the extensions of this class for "stock" implementations.
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/pcode/exec/trace/AbstractCheckedTraceCachedWriteBytesPcodeExecutorStatePiece.java