public static void searchSymbols(GhidraScript script, AbstractPdb pdb, String searchString)
			throws CancelledException, PdbException {

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

		StringBuilder results = new StringBuilder();
		results.append('\n');

		int numModules = debugInfo.getNumModules();
		TaskMonitor monitor = script.getMonitor();

		monitor.initialize(numModules);
		println(script, "Searching " + numModules + " PDB modules' symbol components...");
		for (int module = 0; module <= numModules; module++) {
			monitor.checkCancelled();
			SymbolGroup symbolGroup = new SymbolGroup(pdb, module);
			MsSymbolIterator iter = symbolGroup.getSymbolIterator();
			while (iter.hasNext()) {
				monitor.checkCancelled();
				AbstractMsSymbol symbol = iter.next();
				String symbolString = symbol.toString();
				if (symbolString.contains(searchString)) {
					results.append(
						"Module " + module + ", Offset " + iter.getCurrentOffset() + ":\n");
					results.append(symbolString);
					results.append('\n');
				}
			}
			monitor.incrementProgress(1);
		}
		println(script, results.toString());
	}
Searches PDB symbol records that contain the search string.  Outputs results to the
console
@param script the script for which we are working
@param pdb the PDB to search
@param searchString the search string
@throws CancelledException upon user cancellation
@throws PdbException upon issue creating an iterator
Ghidra/Features/PDB/developer_scripts/pdbquery/PdbQuery.java