@Override
	default String getAddressString(boolean showBlockName, boolean pad) {
		try (LockHold hold = LockHold.lock(getTrace().getReadWriteLock().readLock())) {
			Address address = getAddress();
			if (!showBlockName) {
				return address.toString(false, pad);
			}
			TraceMemoryRegion region =
				getTrace().getMemoryManager().getRegionContaining(getStartSnap(), address);
			if (region == null) {
				return address.toString(showBlockName, pad);
			}
			return region.getName(getStartSnap()) + ":" + address.toString(false, pad);
		}
	}
A base interface for implementations of {@link TraceCodeUnit}

<p>
This behaves somewhat like a mixin, allowing it to be used on code units as well as data
components, e.g., fields of a struct data unit.
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/listing/DBTraceCodeUnitAdapter.java