public static PdbInfo openPdb(GhidraScript script, String filename, TaskMonitor monitor)
			throws CancelledException, PdbException {
		PdbInfo pdbInfo = pdbInfoByFile.get(filename);
		if (pdbInfo != null) {
			return pdbInfo;
		}

		println(script, "Opening PDB: " + filename);

		try {
			File pdbFile = new File(filename);
			AbstractPdb pdb = PdbParser.parse(pdbFile, new PdbReaderOptions(), monitor);
			PdbIdentifiers identifiers = pdb.getIdentifiers();
			pdb.deserialize();
			PdbReaderMetrics metrics = pdb.getPdbReaderMetrics();
			pdbInfo = new PdbInfo(filename, identifiers, pdb, metrics);
			pdbInfoByFile.put(filename, pdbInfo);
			println(script, "\n" + metrics.getPostProcessingReport());
			return pdbInfo;
		}
		catch (IOException ioe) {
			println(script, ioe.getMessage());
			Msg.debug(null, ioe.getMessage());
		}
		return null;
	}
Opens and retains reference to the PDB file specified.  Must call
{@link #closePdb(GhidraScript, String)} to close the PDB and remove it from the map; can
alternatively use {@link #closeAllPdbs(GhidraScript)} to close all PDBs in the map.
@param script script for which we are working
@param filename name of PDB file to open and load into map
@param monitor task monitor
@return PDB associated with the filename
@throws CancelledException upon user cancellation
@throws PdbException upon issues parsing the PDB
Ghidra/Features/PDB/developer_scripts/pdbquery/PdbFactory.java