private static void processGlobalSymbols(DefaultPdbApplicator applicator,
			Map<Address, List<Stuff>> map, TaskMonitor monitor)
			throws CancelledException, PdbException {
		AbstractPdb pdb = applicator.getPdb();

		PdbDebugInfo debugInfo = pdb.getDebugInfo();
		if (debugInfo == null) {
			return;
		}

		SymbolGroup symbolGroup = applicator.getSymbolGroup();
		if (symbolGroup == null) {
			return;
		}

		GlobalSymbolInformation globalSymbolInformation = debugInfo.getGlobalSymbolInformation();
		List<Long> offsets = globalSymbolInformation.getModifiedHashRecordSymbolOffsets();
		monitor.setMessage("PDB: Applying global symbols...");
		monitor.initialize(offsets.size());

		MsSymbolIterator iter = symbolGroup.getSymbolIterator();
		for (long offset : offsets) {
			monitor.checkCancelled();
			iter.initGetByOffset(offset);
			if (!iter.hasNext()) {
				break;
			}
			AbstractMsSymbol symbol = iter.peek();
			//applicator.getPdbApplicatorMetrics().witnessGlobalSymbolType(symbol);
			processPublicSymbol(applicator, map, symbol);
			processProcedureSymbol(applicator, map, symbol);
			monitor.incrementProgress(1);
		}
	}
Default PDB member construction
@param name member field name.
@param dataType for the field.
@param offset member's byte offset within the root composite.
Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/PdbResearch.java