1283625Sdim//===- PDBSymDumper.h - base interface for PDB symbol dumper *- C++ -----*-===// 2283625Sdim// 3283625Sdim// The LLVM Compiler Infrastructure 4283625Sdim// 5283625Sdim// This file is distributed under the University of Illinois Open Source 6283625Sdim// License. See LICENSE.TXT for details. 7283625Sdim// 8283625Sdim//===----------------------------------------------------------------------===// 9283625Sdim 10283625Sdim#ifndef LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H 11283625Sdim#define LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H 12283625Sdim 13283625Sdim#include "PDBTypes.h" 14283625Sdim 15283625Sdimnamespace llvm { 16283625Sdim 17283625Sdimclass raw_ostream; 18283625Sdim 19283625Sdimclass PDBSymDumper { 20283625Sdimpublic: 21283625Sdim PDBSymDumper(bool ShouldRequireImpl); 22283625Sdim virtual ~PDBSymDumper(); 23283625Sdim 24283625Sdim virtual void dump(const PDBSymbolAnnotation &Symbol); 25283625Sdim virtual void dump(const PDBSymbolBlock &Symbol); 26283625Sdim virtual void dump(const PDBSymbolCompiland &Symbol); 27283625Sdim virtual void dump(const PDBSymbolCompilandDetails &Symbol); 28283625Sdim virtual void dump(const PDBSymbolCompilandEnv &Symbol); 29283625Sdim virtual void dump(const PDBSymbolCustom &Symbol); 30283625Sdim virtual void dump(const PDBSymbolData &Symbol); 31283625Sdim virtual void dump(const PDBSymbolExe &Symbol); 32283625Sdim virtual void dump(const PDBSymbolFunc &Symbol); 33283625Sdim virtual void dump(const PDBSymbolFuncDebugEnd &Symbol); 34283625Sdim virtual void dump(const PDBSymbolFuncDebugStart &Symbol); 35283625Sdim virtual void dump(const PDBSymbolLabel &Symbol); 36283625Sdim virtual void dump(const PDBSymbolPublicSymbol &Symbol); 37283625Sdim virtual void dump(const PDBSymbolThunk &Symbol); 38283625Sdim virtual void dump(const PDBSymbolTypeArray &Symbol); 39283625Sdim virtual void dump(const PDBSymbolTypeBaseClass &Symbol); 40283625Sdim virtual void dump(const PDBSymbolTypeBuiltin &Symbol); 41283625Sdim virtual void dump(const PDBSymbolTypeCustom &Symbol); 42283625Sdim virtual void dump(const PDBSymbolTypeDimension &Symbol); 43283625Sdim virtual void dump(const PDBSymbolTypeEnum &Symbol); 44283625Sdim virtual void dump(const PDBSymbolTypeFriend &Symbol); 45283625Sdim virtual void dump(const PDBSymbolTypeFunctionArg &Symbol); 46283625Sdim virtual void dump(const PDBSymbolTypeFunctionSig &Symbol); 47283625Sdim virtual void dump(const PDBSymbolTypeManaged &Symbol); 48283625Sdim virtual void dump(const PDBSymbolTypePointer &Symbol); 49283625Sdim virtual void dump(const PDBSymbolTypeTypedef &Symbol); 50283625Sdim virtual void dump(const PDBSymbolTypeUDT &Symbol); 51283625Sdim virtual void dump(const PDBSymbolTypeVTable &Symbol); 52283625Sdim virtual void dump(const PDBSymbolTypeVTableShape &Symbol); 53283625Sdim virtual void dump(const PDBSymbolUnknown &Symbol); 54283625Sdim virtual void dump(const PDBSymbolUsingNamespace &Symbol); 55283625Sdim 56283625Sdimprivate: 57283625Sdim bool RequireImpl; 58283625Sdim}; 59285181Sdim} 60283625Sdim 61283625Sdim#endif 62