1 | //===- PDBSymDumper.h - base interface for PDB symbol dumper *- C++ -----*-===// |
---|---|
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #ifndef LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H |
10 | #define LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H |
11 | |
12 | #include "PDBTypes.h" |
13 | |
14 | namespace llvm { |
15 | |
16 | class raw_ostream; |
17 | namespace pdb { |
18 | |
19 | class PDBSymDumper { |
20 | public: |
21 | PDBSymDumper(bool ShouldRequireImpl); |
22 | virtual ~PDBSymDumper(); |
23 | |
24 | virtual void dump(const PDBSymbolAnnotation &Symbol); |
25 | virtual void dump(const PDBSymbolBlock &Symbol); |
26 | virtual void dump(const PDBSymbolCompiland &Symbol); |
27 | virtual void dump(const PDBSymbolCompilandDetails &Symbol); |
28 | virtual void dump(const PDBSymbolCompilandEnv &Symbol); |
29 | virtual void dump(const PDBSymbolCustom &Symbol); |
30 | virtual void dump(const PDBSymbolData &Symbol); |
31 | virtual void dump(const PDBSymbolExe &Symbol); |
32 | virtual void dump(const PDBSymbolFunc &Symbol); |
33 | virtual void dump(const PDBSymbolFuncDebugEnd &Symbol); |
34 | virtual void dump(const PDBSymbolFuncDebugStart &Symbol); |
35 | virtual void dump(const PDBSymbolLabel &Symbol); |
36 | virtual void dump(const PDBSymbolPublicSymbol &Symbol); |
37 | virtual void dump(const PDBSymbolThunk &Symbol); |
38 | virtual void dump(const PDBSymbolTypeArray &Symbol); |
39 | virtual void dump(const PDBSymbolTypeBaseClass &Symbol); |
40 | virtual void dump(const PDBSymbolTypeBuiltin &Symbol); |
41 | virtual void dump(const PDBSymbolTypeCustom &Symbol); |
42 | virtual void dump(const PDBSymbolTypeDimension &Symbol); |
43 | virtual void dump(const PDBSymbolTypeEnum &Symbol); |
44 | virtual void dump(const PDBSymbolTypeFriend &Symbol); |
45 | virtual void dump(const PDBSymbolTypeFunctionArg &Symbol); |
46 | virtual void dump(const PDBSymbolTypeFunctionSig &Symbol); |
47 | virtual void dump(const PDBSymbolTypeManaged &Symbol); |
48 | virtual void dump(const PDBSymbolTypePointer &Symbol); |
49 | virtual void dump(const PDBSymbolTypeTypedef &Symbol); |
50 | virtual void dump(const PDBSymbolTypeUDT &Symbol); |
51 | virtual void dump(const PDBSymbolTypeVTable &Symbol); |
52 | virtual void dump(const PDBSymbolTypeVTableShape &Symbol); |
53 | virtual void dump(const PDBSymbolUnknown &Symbol); |
54 | virtual void dump(const PDBSymbolUsingNamespace &Symbol); |
55 | |
56 | virtual void dumpRight(const PDBSymbolTypeArray &Symbol) {} |
57 | virtual void dumpRight(const PDBSymbolTypeBaseClass &Symbol) {} |
58 | virtual void dumpRight(const PDBSymbolTypeBuiltin &Symbol) {} |
59 | virtual void dumpRight(const PDBSymbolTypeCustom &Symbol) {} |
60 | virtual void dumpRight(const PDBSymbolTypeDimension &Symbol) {} |
61 | virtual void dumpRight(const PDBSymbolTypeEnum &Symbol) {} |
62 | virtual void dumpRight(const PDBSymbolTypeFriend &Symbol) {} |
63 | virtual void dumpRight(const PDBSymbolTypeFunctionArg &Symbol) {} |
64 | virtual void dumpRight(const PDBSymbolTypeFunctionSig &Symbol) {} |
65 | virtual void dumpRight(const PDBSymbolTypeManaged &Symbol) {} |
66 | virtual void dumpRight(const PDBSymbolTypePointer &Symbol) {} |
67 | virtual void dumpRight(const PDBSymbolTypeTypedef &Symbol) {} |
68 | virtual void dumpRight(const PDBSymbolTypeUDT &Symbol) {} |
69 | virtual void dumpRight(const PDBSymbolTypeVTable &Symbol) {} |
70 | virtual void dumpRight(const PDBSymbolTypeVTableShape &Symbol) {} |
71 | |
72 | private: |
73 | bool RequireImpl; |
74 | }; |
75 | } |
76 | } |
77 | |
78 | #endif |
79 |