protected int getBytes(ByteBuffer buffer, Address guestStart) {
		int startPos = buffer.position();
		while (buffer.hasRemaining()) {
			int offset = buffer.position() - startPos;
			Address guestCur = guestStart.add(offset);
			Entry<Address, DBTraceGuestPlatformMappedRange> floorEntry =
				guest.rangesByGuestAddress.floorEntry(guestCur);
			if (floorEntry == null) {
				return offset;
			}
			DBTraceGuestPlatformMappedRange range = floorEntry.getValue();
			Address hostCur = range.mapGuestToHost(guestCur);
			if (hostCur == null) {
				return offset;
			}
			int lenToRead = MathUtilities.unsignedMin(buffer.remaining(),
				range.getGuestRange().getMaxAddress().subtract(guestStart) + 1);
			DBTraceMemorySpace hostSpace = manager.getMemorySpace(hostCur.getAddressSpace(), false);
			if (hostSpace == null) {
				// TODO: Finish or skip and continue? Going with skip and continue for now
				buffer.position(buffer.position() + lenToRead);
				continue;
			}
			int savedLimit = buffer.limit();
			try {
				buffer.limit(buffer.position() + lenToRead);
				hostSpace.getViewBytes(snap, hostCur, buffer);
			}
			finally {
				buffer.limit(savedLimit);
			}
		}
		return buffer.position() - startPos;
	}
TODO: Document me

<p>
Note this is the bare minimum to support {@link DumbMemBufferImpl}
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/guest/DBTraceGuestPlatformMappedMemory.java