@Override
	public CompletableFuture<Void> forceTerminateAsync() {
		Map<String, ActionEntry> kills =
			collectByName(ActionName.KILL, null, ObjectArgumentPolicy.CURRENT_AND_RELATED);
		for (ActionEntry kill : kills.values()) {
			if (kill.requiresPrompt()) {
				continue;
			}
			return kill.invokeAsync(false).handle((v, e) -> {
				connection.forceCloseTrace(trace);
				return null;
			});
		}
		Msg.warn(this, "Cannot find way to gracefully kill. Forcing close regardless.");
		connection.forceCloseTrace(trace);
		return AsyncUtils.nil();
	}
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