public ExecutableRecord findExecutable(String name, String arch, String comp)
			throws LSHException {
		if (StringUtils.isEmpty(arch)) {
			arch = null;
		}
		if (StringUtils.isEmpty(comp)) {
			comp = null;
		}
		for (ExecutableRecord erec : exerec) {
			if (!erec.getNameExec().equals(name)) {
				continue;
			}
			if (arch != null && !erec.getArchitecture().equals(arch)) {
				continue;
			}
			if (comp != null && !erec.getNameCompiler().equals(comp)) {
				continue;
			}
			return erec;
		}
		throw new LSHException("Unable to find executable");
	}
Search for executable based an name, and possibly other qualifying information.
This is relatively inefficient as it just iterates through the list.
@param name is the name that the executable must match
@param arch is null or must match the executable's architecture string
@param comp is null or must match the executable's compiler string
@return the matching executable
@throws LSHException if a matching executable doesn't exist
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/DescriptionManager.java