public void logSummaryResults() {
		if (totalElapsedMS > 0) {
			Msg.info(this, "DWARF ver%s, %d compUnits, %d DIES, import - total elapsed: %dms"
					.formatted(getSortedSet(dwarfVers).toString(), compUnitCount, dieCount,
						totalElapsedMS));
		}
		if (dataTypeElapsedMS > 0) {
			Msg.info(this,
				String.format("DWARF data type import - elapsed: %dms", dataTypeElapsedMS));
		}
		if (funcsElapsedMS > 0) {
			Msg.info(this,
				String.format("DWARF func & symbol import - elapsed: %dms", funcsElapsedMS));
		}
		if (dataTypesAdded > 0) {
			Msg.info(this, String.format("DWARF types imported: %d", dataTypesAdded));
		}
		if (funcsAdded > 0) {
			Msg.info(this, String.format("DWARF funcs added: %d", funcsAdded));
		}
		if (funcSignaturesAdded > 0) {
			Msg.info(this,
				String.format("DWARF function signatures added: %d", funcSignaturesAdded));
		}
		if (!compDirs.isEmpty()) {
			Msg.info(this, "DWARF compile dirs: " + getSortedSet(compDirs).toString());
		}
		if (!producers.isEmpty()) {
			Msg.info(this, "DWARF producers: " + getSortedSet(producers));
		}
		if (!sourceLangs.isEmpty()) {
			Msg.info(this, "DWARF source languages: " + getSortedSet(sourceLangs));
		}
		for (String s : compNames) {
			Msg.info(this, "DWARF compUnit: " + s);
		}

		if (!typeRemappings.isEmpty()) {
			Msg.error(this,
				"DWARF data type remappings (DWARF data type definitions that changed meaning in different compile units):");
			Msg.error(this, "  Data type -> changed to -> Data Type");
			int x = 0;
			for (String s : typeRemappings) {
				Msg.error(this, "  " + s);
				if (x++ > 1000) {
					Msg.error(this, "...omitting " + (typeRemappings.size() - 1000) +
						" additional type remapping warnings.");
					break;
				}
			}
		}

		if (!relocationErrorVarDefs.isEmpty()) {
			Msg.error(this, "DWARF static variables with missing address info:");
			Msg.error(this, "  [Variable symbolic name  : variable data type]");
			for (String varDef : relocationErrorVarDefs) {
				Msg.error(this, "  " + varDef);
			}
		}

		if (varFitError > 0) {
			Msg.error(this,
				"DWARF variable definitions that failed because the data type was too large for the defined register location: " +
					varFitError);
		}

		if (varDynamicRegisterError > 0) {
			Msg.error(this,
				"DWARF variable definitions that failed because they depended on the dynamic value of a register: " +
					varDynamicRegisterError);
		}

		if (varDWARFExpressionValue > 0) {
			Msg.error(this,
				"DWARF variable definitions that failed because they are computed pseudo variables: " +
					varDWARFExpressionValue);
		}

		if (paramZeroLenDataType > 0) {
			Msg.error(this, "DWARF zero-length parameters: " + paramZeroLenDataType);
		}
		if (exprReadError > 0) {
			Msg.error(this, "DWARF expression failed to read: " + exprReadError);
		}
		if (badSourceFileCount > 0) {
			Msg.error(this, "DWARF source file info errors: %d".formatted(badSourceFileCount));
		}
	}
Writes summary information to the {@link Msg} log.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFImportSummary.java