Line data Source code
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 238 : 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 0 : virtual void dumpRight(const PDBSymbolTypeArray &Symbol) {}
58 0 : virtual void dumpRight(const PDBSymbolTypeBaseClass &Symbol) {}
59 0 : virtual void dumpRight(const PDBSymbolTypeBuiltin &Symbol) {}
60 0 : virtual void dumpRight(const PDBSymbolTypeCustom &Symbol) {}
61 0 : virtual void dumpRight(const PDBSymbolTypeDimension &Symbol) {}
62 0 : virtual void dumpRight(const PDBSymbolTypeEnum &Symbol) {}
63 0 : virtual void dumpRight(const PDBSymbolTypeFriend &Symbol) {}
64 0 : virtual void dumpRight(const PDBSymbolTypeFunctionArg &Symbol) {}
65 0 : virtual void dumpRight(const PDBSymbolTypeFunctionSig &Symbol) {}
66 0 : virtual void dumpRight(const PDBSymbolTypeManaged &Symbol) {}
67 0 : virtual void dumpRight(const PDBSymbolTypePointer &Symbol) {}
68 0 : virtual void dumpRight(const PDBSymbolTypeTypedef &Symbol) {}
69 0 : virtual void dumpRight(const PDBSymbolTypeUDT &Symbol) {}
70 0 : virtual void dumpRight(const PDBSymbolTypeVTable &Symbol) {}
71 0 : virtual void dumpRight(const PDBSymbolTypeVTableShape &Symbol) {}
72 :
73 : private:
74 : bool RequireImpl;
75 : };
76 : }
77 : }
78 :
79 : #endif
|