@Override
		public boolean applyTo(Program program, TaskMonitor monitor) {
			try (AbstractPdb pdb = PdbParser.parse(pdbFile, pdbReaderOptions, monitor)) {
				monitor.setMessage("PDB: Parsing " + pdbFile + "...");
				pdb.deserialize();
				DefaultPdbApplicator applicator =
					new DefaultPdbApplicator(pdb, program, program.getDataTypeManager(),
						program.getImageBase(), pdbApplicatorOptions, monitor, log);
				applicator.applyFunctionInternalsAnalysis();
				return true;
			}
			catch (PdbException | IOException e) {
				log.appendMsg(getName(),
					"Issue processing PDB file:  " + pdbFile + ":\n   " + e.toString());
				return false;
			}
			catch (CancelledException e) {
				return false;
			}
		}
A background command that performs additional PDB analysis after after other analysis
 works on function internals.  The first phase must have been run, as it reads the PDB
 and processes data types, retaining the information needed for this step.  Not what all
 processing we will do here and whether we might need additional commands like this one.
   For now, we want this one for doing global/module symbol function processing to
   set up locals/params/scopes, but some of the data encountered could be for static
   local variables and other things that might make sense to process in the first phase
   (for now, they will be in the second phase).
Ghidra/Features/PDB/src/main/java/ghidra/app/plugin/core/analysis/PdbUniversalAnalyzer.java