File indexing completed on 2026-05-10 08:43:46
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H
0010 #define LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H
0011
0012 #include "PDBTypes.h"
0013
0014 namespace llvm {
0015
0016 class raw_ostream;
0017 namespace pdb {
0018
0019 class PDBSymDumper {
0020 public:
0021 PDBSymDumper(bool ShouldRequireImpl);
0022 virtual ~PDBSymDumper();
0023
0024 virtual void dump(const PDBSymbolAnnotation &Symbol);
0025 virtual void dump(const PDBSymbolBlock &Symbol);
0026 virtual void dump(const PDBSymbolCompiland &Symbol);
0027 virtual void dump(const PDBSymbolCompilandDetails &Symbol);
0028 virtual void dump(const PDBSymbolCompilandEnv &Symbol);
0029 virtual void dump(const PDBSymbolCustom &Symbol);
0030 virtual void dump(const PDBSymbolData &Symbol);
0031 virtual void dump(const PDBSymbolExe &Symbol);
0032 virtual void dump(const PDBSymbolFunc &Symbol);
0033 virtual void dump(const PDBSymbolFuncDebugEnd &Symbol);
0034 virtual void dump(const PDBSymbolFuncDebugStart &Symbol);
0035 virtual void dump(const PDBSymbolLabel &Symbol);
0036 virtual void dump(const PDBSymbolPublicSymbol &Symbol);
0037 virtual void dump(const PDBSymbolThunk &Symbol);
0038 virtual void dump(const PDBSymbolTypeArray &Symbol);
0039 virtual void dump(const PDBSymbolTypeBaseClass &Symbol);
0040 virtual void dump(const PDBSymbolTypeBuiltin &Symbol);
0041 virtual void dump(const PDBSymbolTypeCustom &Symbol);
0042 virtual void dump(const PDBSymbolTypeDimension &Symbol);
0043 virtual void dump(const PDBSymbolTypeEnum &Symbol);
0044 virtual void dump(const PDBSymbolTypeFriend &Symbol);
0045 virtual void dump(const PDBSymbolTypeFunctionArg &Symbol);
0046 virtual void dump(const PDBSymbolTypeFunctionSig &Symbol);
0047 virtual void dump(const PDBSymbolTypeManaged &Symbol);
0048 virtual void dump(const PDBSymbolTypePointer &Symbol);
0049 virtual void dump(const PDBSymbolTypeTypedef &Symbol);
0050 virtual void dump(const PDBSymbolTypeUDT &Symbol);
0051 virtual void dump(const PDBSymbolTypeVTable &Symbol);
0052 virtual void dump(const PDBSymbolTypeVTableShape &Symbol);
0053 virtual void dump(const PDBSymbolUnknown &Symbol);
0054 virtual void dump(const PDBSymbolUsingNamespace &Symbol);
0055
0056 virtual void dumpRight(const PDBSymbolTypeArray &Symbol) {}
0057 virtual void dumpRight(const PDBSymbolTypeBaseClass &Symbol) {}
0058 virtual void dumpRight(const PDBSymbolTypeBuiltin &Symbol) {}
0059 virtual void dumpRight(const PDBSymbolTypeCustom &Symbol) {}
0060 virtual void dumpRight(const PDBSymbolTypeDimension &Symbol) {}
0061 virtual void dumpRight(const PDBSymbolTypeEnum &Symbol) {}
0062 virtual void dumpRight(const PDBSymbolTypeFriend &Symbol) {}
0063 virtual void dumpRight(const PDBSymbolTypeFunctionArg &Symbol) {}
0064 virtual void dumpRight(const PDBSymbolTypeFunctionSig &Symbol) {}
0065 virtual void dumpRight(const PDBSymbolTypeManaged &Symbol) {}
0066 virtual void dumpRight(const PDBSymbolTypePointer &Symbol) {}
0067 virtual void dumpRight(const PDBSymbolTypeTypedef &Symbol) {}
0068 virtual void dumpRight(const PDBSymbolTypeUDT &Symbol) {}
0069 virtual void dumpRight(const PDBSymbolTypeVTable &Symbol) {}
0070 virtual void dumpRight(const PDBSymbolTypeVTableShape &Symbol) {}
0071
0072 private:
0073 bool RequireImpl;
0074 };
0075 }
0076 }
0077
0078 #endif