]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/llvm-pdbdump/LLVMOutputStyle.h
Merge llvm, clang, lld and lldb release_40 branch r292009. Also update
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / llvm-pdbdump / LLVMOutputStyle.h
1 //===- LLVMOutputStyle.h -------------------------------------- *- 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_TOOLS_LLVMPDBDUMP_LLVMOUTPUTSTYLE_H
11 #define LLVM_TOOLS_LLVMPDBDUMP_LLVMOUTPUTSTYLE_H
12
13 #include "OutputStyle.h"
14
15 #include "llvm/DebugInfo/CodeView/TypeDatabase.h"
16 #include "llvm/Support/ScopedPrinter.h"
17
18 namespace llvm {
19 class BitVector;
20 namespace pdb {
21 class LLVMOutputStyle : public OutputStyle {
22 public:
23   LLVMOutputStyle(PDBFile &File);
24
25   Error dump() override;
26
27 private:
28   void discoverStreamPurposes();
29
30   Error dumpFileHeaders();
31   Error dumpStreamSummary();
32   Error dumpFreePageMap();
33   Error dumpBlockRanges();
34   Error dumpGlobalsStream();
35   Error dumpStreamBytes();
36   Error dumpStreamBlocks();
37   Error dumpInfoStream();
38   Error dumpTpiStream(uint32_t StreamIdx);
39   Error dumpDbiStream();
40   Error dumpSectionContribs();
41   Error dumpSectionMap();
42   Error dumpPublicsStream();
43   Error dumpSectionHeaders();
44   Error dumpFpoStream();
45
46   void dumpBitVector(StringRef Name, const BitVector &V);
47
48   void flush();
49
50   PDBFile &File;
51   ScopedPrinter P;
52   codeview::TypeDatabase TypeDB;
53   std::vector<std::string> StreamPurposes;
54 };
55 }
56 }
57
58 #endif