1 //===- BytesOutputStyle.h ------------------------------------- *- C++ --*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_TOOLS_LLVMPDBDUMP_BYTESOUTPUTSTYLE_H
11 #define LLVM_TOOLS_LLVMPDBDUMP_BYTESOUTPUTSTYLE_H
13 #include "LinePrinter.h"
14 #include "OutputStyle.h"
15 #include "StreamUtil.h"
17 #include "llvm/Support/Error.h"
22 class LazyRandomTypeCollection;
29 class BytesOutputStyle : public OutputStyle {
31 BytesOutputStyle(PDBFile &File);
33 Error dump() override;
37 void dumpBlockRanges(uint32_t Min, uint32_t Max);
38 void dumpByteRanges(uint32_t Min, uint32_t Max);
40 void dumpStreamBytes();
42 void dumpSectionContributions();
43 void dumpSectionMap();
44 void dumpModuleInfos();
46 void dumpTypeServerMap();
49 void dumpModuleSyms();
53 void dumpTypeIndex(uint32_t StreamIdx, ArrayRef<uint32_t> Indices);
55 Expected<codeview::LazyRandomTypeCollection &>
56 initializeTypes(uint32_t StreamIdx);
58 std::unique_ptr<codeview::LazyRandomTypeCollection> TpiTypes;
59 std::unique_ptr<codeview::LazyRandomTypeCollection> IpiTypes;
64 SmallVector<StreamInfo, 8> StreamPurposes;