protected boolean isRegisterValid(TracePlatform platform, TraceThread thread, int frame,
			Address address, int length) {
		if (!isMemorySpaceValid(platform, address.getAddressSpace())) {
			return false;
		}
		Register register =
			platform.getLanguage().getRegister(address.getPhysicalAddress(), length);
		if (register == null) {
			return false;
		}
		if (!(thread instanceof TraceObjectThread tot)) {
			return false;
		}
		// May be primitive or object
		FoundRegister found = findRegister(tot, frame, register);
		if (found == null) {
			return false;
		}
		return true;
	}
When checking for register validity, we consider it valid if it or any of its parents are
valid, or any alias thereof.
Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/service/tracermi/TraceRmiTarget.java