public long initialize(boolean headerOnly)
			throws IOException, PdbException, CancelledException {
		if (headerOnly) {
			PdbByteReader reader = pdb.getReaderForStreamNumber(streamNumber, 0, getHeaderLength());
			deserializeHeader(reader);
		}
		else {
			PdbByteReader reader = pdb.getReaderForStreamNumber(streamNumber);
			deserializeHeader(reader);
			deserializeInternalSubstreams(reader);
			globalSymbolInformation =
				new GlobalSymbolInformation(pdb, getGlobalSymbolsHashMaybeStreamNumber());
			publicSymbolInformation =
				new PublicSymbolInformation(pdb, getPublicStaticSymbolsHashMaybeStreamNumber());
			symbolRecords = new SymbolRecords(pdb);
			initializeAdditionalComponentsForSubstreams();
			initializeModules();
			//compareSymbols(); //temporary to ensure same results with previous work.
		}
		return versionNumber;
	}
Deserializes and initializes some basic {@link PdbDebugInfo}-based information
The PDB is updated with dbiAge and targetProcessor during deserialization
of new DBI header.
@param headerOnly if true only the DBI header fields will be parsed
@return the version number of the debug info
@throws IOException on file seek or read, invalid parameters, bad file configuration, or
 inability to read required bytes
@throws PdbException upon error parsing a field
@throws CancelledException upon user cancellation
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/PdbDebugInfo.java