private boolean disassembleIfNeeded(Program program, Address address) {
		if (!shouldDisassemble()) {
			return false;
		}
		Listing listing = program.getListing();
		Instruction inst = listing.getInstructionAt(address);
		// location should be protected from clearing
		AutoAnalysisManager.getAnalysisManager(program).setProtectedLocation(address);
		if (inst == null) {
			DisassembleCommand cmd = new DisassembleCommand(address, null, true);
			if (!cmd.applyTo(program) || cmd.getDisassembledAddressSet().isEmpty()) {
				String message = "Failed to disassemble at " + address;
				Msg.error(this, message);
				return false;
			}
			return true;
		}
		return false; // already disassembled
	}
Creates an analyzer for marking up the GCC exception handling information.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/exceptionhandlers/gcc/GccExceptionAnalyzer.java