109467b48Spatrick //===- BytesOutputStyle.h ------------------------------------- *- C++ --*-===// 209467b48Spatrick // 309467b48Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 409467b48Spatrick // See https://llvm.org/LICENSE.txt for license information. 509467b48Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 609467b48Spatrick // 709467b48Spatrick //===----------------------------------------------------------------------===// 809467b48Spatrick 909467b48Spatrick #ifndef LLVM_TOOLS_LLVMPDBDUMP_BYTESOUTPUTSTYLE_H 1009467b48Spatrick #define LLVM_TOOLS_LLVMPDBDUMP_BYTESOUTPUTSTYLE_H 1109467b48Spatrick 1209467b48Spatrick #include "OutputStyle.h" 1309467b48Spatrick #include "StreamUtil.h" 1409467b48Spatrick 15*d415bd75Srobert #include "llvm/DebugInfo/PDB/Native/LinePrinter.h" 1609467b48Spatrick #include "llvm/Support/Error.h" 1709467b48Spatrick 1809467b48Spatrick namespace llvm { 1909467b48Spatrick 2009467b48Spatrick namespace codeview { 2109467b48Spatrick class LazyRandomTypeCollection; 2209467b48Spatrick } 2309467b48Spatrick 2409467b48Spatrick namespace pdb { 2509467b48Spatrick 2609467b48Spatrick class PDBFile; 2709467b48Spatrick 2809467b48Spatrick class BytesOutputStyle : public OutputStyle { 2909467b48Spatrick public: 3009467b48Spatrick BytesOutputStyle(PDBFile &File); 3109467b48Spatrick 3209467b48Spatrick Error dump() override; 3309467b48Spatrick 3409467b48Spatrick private: 3509467b48Spatrick void dumpNameMap(); 3609467b48Spatrick void dumpBlockRanges(uint32_t Min, uint32_t Max); 3709467b48Spatrick void dumpByteRanges(uint32_t Min, uint32_t Max); 3809467b48Spatrick void dumpFpm(); 3909467b48Spatrick void dumpStreamBytes(); 4009467b48Spatrick 4109467b48Spatrick void dumpSectionContributions(); 4209467b48Spatrick void dumpSectionMap(); 4309467b48Spatrick void dumpModuleInfos(); 4409467b48Spatrick void dumpFileInfo(); 4509467b48Spatrick void dumpTypeServerMap(); 4609467b48Spatrick void dumpECData(); 4709467b48Spatrick 4809467b48Spatrick void dumpModuleSyms(); 4909467b48Spatrick void dumpModuleC11(); 5009467b48Spatrick void dumpModuleC13(); 5109467b48Spatrick 5209467b48Spatrick void dumpTypeIndex(uint32_t StreamIdx, ArrayRef<uint32_t> Indices); 5309467b48Spatrick 5409467b48Spatrick Expected<codeview::LazyRandomTypeCollection &> 5509467b48Spatrick initializeTypes(uint32_t StreamIdx); 5609467b48Spatrick 5709467b48Spatrick std::unique_ptr<codeview::LazyRandomTypeCollection> TpiTypes; 5809467b48Spatrick std::unique_ptr<codeview::LazyRandomTypeCollection> IpiTypes; 5909467b48Spatrick 6009467b48Spatrick PDBFile &File; 6109467b48Spatrick LinePrinter P; 6209467b48Spatrick ExitOnError Err; 6309467b48Spatrick SmallVector<StreamInfo, 8> StreamPurposes; 6409467b48Spatrick }; 6509467b48Spatrick } // namespace pdb 6609467b48Spatrick } // namespace llvm 6709467b48Spatrick 6809467b48Spatrick #endif 69