static void childWalk(DefaultPdbApplicator applicator, TaskMonitor monitor)
			throws CancelledException, PdbException {

		PdbDebugInfo debugInfo = applicator.getPdb().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 typedefs...");
		monitor.initialize(offsets.size());

		MsSymbolIterator iter = symbolGroup.getSymbolIterator();
		for (long offset : offsets) {
			monitor.checkCancelled();
			iter.initGetByOffset(offset);
			if (!childWalkSym(applicator, symbolGroup.getModuleNumber(), iter)) {
				break;
			}
			monitor.incrementProgress(1);
		}
	}
Developmental method for breakpoints.  TODO: will delete this from production.
Set breakpoint on {@code #doNothingSetBreakPointHere();}
@param recordNumber the record number that is being processed (set negative to ignore)
<p>
This code is useful for developer debugging because the PDB is records-based and we often
need to set breakpoints elsewhere, determine what RecordNumber we are interested in, and
then use this method to set a breakpoint to catch when the record number is being seen
earlier in the state of processing.  The numbers in {@link #debugIndexNumbers} is set
by {@link #initBreakPointRecordNumbers()}.
Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/PdbResearch.java