protected Map<String, ValStr<?>> promptLauncherArgs(LaunchConfigurator configurator,
			Throwable lastExc) {
		Map<String, LaunchParameter<?>> params = getParameters();
		TraceRmiLaunchDialog dialog =
			new TraceRmiLaunchDialog(tool, getTitle(), "Launch", getIcon());
		dialog.setDescription(getDescription());
		dialog.setHelpLocation(getHelpLocation());
		if (lastExc != null) {
			dialog.setStatusText(lastExc.toString(), MessageType.ERROR);
		}
		else {
			dialog.setStatusText("");
		}

		// NB. Do not invoke read/writeConfigState

		Map<String, ValStr<?>> defaultArgs = generateDefaultLauncherArgs(params);
		Map<String, ValStr<?>> lastArgs =
			configurator.configureLauncher(this, loadLastLauncherArgs(true), RelPrompt.BEFORE);
		Map<String, ValStr<?>> args = dialog.promptArguments(params, lastArgs, defaultArgs);
		if (args != null) {
			saveLauncherArgs(args, params);
		}
		return args;
	}
Prompt the user for arguments, showing those last used or defaults

@param configurator a thing to generate/modify the (default) arguments
@param lastExc if re-prompting, an error to display
@return the arguments given by the user, or null if cancelled
Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/gui/tracermi/launcher/AbstractTraceRmiLaunchOffer.java