public static SymbolFileInfo fromProgramInfo(Program program) {
		try {
			PdbProgramAttributes pdbAttrs = new PdbProgramAttributes(program);
			int sig = pdbAttrs.getPdbSignatureAsInt();
			String guidString = pdbAttrs.getPdbGuid();
			GUID guid = null;
			if (!StringUtils.isBlank(guidString)) {
				try {
					guid = new GUID(guidString);
				}
				catch (IllegalArgumentException e) {
					// ignore, fallthru with guid==null
				}
			}
			int age = pdbAttrs.getPdbAgeAsInt();
			String path = pdbAttrs.getPdbFile();
			path = !StringUtils.isBlank(path) ? path : "";
			
			if (sig == 0 && guid == null && path.isEmpty()) {
				return null;
			}

			PdbIdentifiers pdbIdentifiers = new PdbIdentifiers(0, sig, age, guid, null);

			return new SymbolFileInfo(path, pdbIdentifiers);
		}
		catch (IllegalArgumentException e) {
			return null;
		}
	}
Create a SymbolFileInfo instance from the metadata found in a program
@param program where the Pdb metadata is stored 
@return new SymbolFileInfo instance, or null if no Pdb info found
Ghidra/Features/PDB/src/main/java/pdb/symbolserver/SymbolFileInfo.java