1 //===- PDBSymDumper.h - base interface for PDB symbol dumper *- C++ -----*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H 11 #define LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H 12 13 #include "PDBTypes.h" 14 15 namespace llvm { 16 17 class raw_ostream; 18 namespace pdb { 19 20 class PDBSymDumper { 21 public: 22 PDBSymDumper(bool ShouldRequireImpl); 23 virtual ~PDBSymDumper(); 24 25 virtual void dump(const PDBSymbolAnnotation &Symbol); 26 virtual void dump(const PDBSymbolBlock &Symbol); 27 virtual void dump(const PDBSymbolCompiland &Symbol); 28 virtual void dump(const PDBSymbolCompilandDetails &Symbol); 29 virtual void dump(const PDBSymbolCompilandEnv &Symbol); 30 virtual void dump(const PDBSymbolCustom &Symbol); 31 virtual void dump(const PDBSymbolData &Symbol); 32 virtual void dump(const PDBSymbolExe &Symbol); 33 virtual void dump(const PDBSymbolFunc &Symbol); 34 virtual void dump(const PDBSymbolFuncDebugEnd &Symbol); 35 virtual void dump(const PDBSymbolFuncDebugStart &Symbol); 36 virtual void dump(const PDBSymbolLabel &Symbol); 37 virtual void dump(const PDBSymbolPublicSymbol &Symbol); 38 virtual void dump(const PDBSymbolThunk &Symbol); 39 virtual void dump(const PDBSymbolTypeArray &Symbol); 40 virtual void dump(const PDBSymbolTypeBaseClass &Symbol); 41 virtual void dump(const PDBSymbolTypeBuiltin &Symbol); 42 virtual void dump(const PDBSymbolTypeCustom &Symbol); 43 virtual void dump(const PDBSymbolTypeDimension &Symbol); 44 virtual void dump(const PDBSymbolTypeEnum &Symbol); 45 virtual void dump(const PDBSymbolTypeFriend &Symbol); 46 virtual void dump(const PDBSymbolTypeFunctionArg &Symbol); 47 virtual void dump(const PDBSymbolTypeFunctionSig &Symbol); 48 virtual void dump(const PDBSymbolTypeManaged &Symbol); 49 virtual void dump(const PDBSymbolTypePointer &Symbol); 50 virtual void dump(const PDBSymbolTypeTypedef &Symbol); 51 virtual void dump(const PDBSymbolTypeUDT &Symbol); 52 virtual void dump(const PDBSymbolTypeVTable &Symbol); 53 virtual void dump(const PDBSymbolTypeVTableShape &Symbol); 54 virtual void dump(const PDBSymbolUnknown &Symbol); 55 virtual void dump(const PDBSymbolUsingNamespace &Symbol); 56 57 private: 58 bool RequireImpl; 59 }; 60 } 61 } 62 63 #endif 64