public void importSymbols(MessageLog log) throws CancelledException {
		if (!isSameMemmap()) {
			Msg.warn(this,
				"Unable to copy external symbols from external debug file, memory map does not match");
			return;
		}

		try {
			monitor.setIndeterminate(false);
			monitor.initialize(extSymTable.getNumSymbols(), "External debug file symbols");
			for (Symbol extSym : extSymTable.getPrimarySymbolIterator(true)) {
				monitor.increment();
				totalSymbolCount++;
				if (shouldCopyExtSymbol(extSym)) {
					copyExtSymbol(extSym);
				}
			}
		}
		catch (InvalidInputException | CodeUnitInsertionException
				| OverlappingFunctionException e) {
			log.appendMsg("Error while copying external debug file symbols");
			log.appendException(e);
		}
		finally {

			Msg.info(this, "Copied %d/%d of %d func/data/total symbols from external debug file"
					.formatted(funcSymbolsCopied, dataSymbolsCopied, totalSymbolCount));
		}
	}
Imports symbols from an external debug program (typically created via a reverse strip) into
the program that contains the executable code that the symbols will be applied to.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/ExternalDebugFileSymbolImporter.java