public T getFloor(long snap, Address address) {
		try (LockHold hold = LockHold.lock(readLock())) {
			Iterator<AddressRange> it = DBTraceUtils
					.getAddressSet(manager.getTrace().getBaseAddressFactory(), address, false)
					.iterator(false);
			while (it.hasNext()) {
				AddressRange range = it.next();
				M m = getForSpace(range.getAddressSpace(), false);
				T candidate = m == null ? nullOrUndefined(snap, range.getMaxAddress())
						: m.getFloor(snap, range.getMaxAddress());
				if (candidate != null) {
					return candidate;
				}
			}
			return null;
		}
	}
@see TraceBaseCodeUnitsView#getFloor(long, Address)
@param snap the snap
@param address the address
@return the unit or null
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/listing/AbstractBaseDBTraceCodeUnitsMemoryView.java