19940203aSZachary Turner //===- BytesOutputStyle.h ------------------------------------- *- C++ --*-===// 29940203aSZachary Turner // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 69940203aSZachary Turner // 79940203aSZachary Turner //===----------------------------------------------------------------------===// 89940203aSZachary Turner 99940203aSZachary Turner #ifndef LLVM_TOOLS_LLVMPDBDUMP_BYTESOUTPUTSTYLE_H 109940203aSZachary Turner #define LLVM_TOOLS_LLVMPDBDUMP_BYTESOUTPUTSTYLE_H 119940203aSZachary Turner 129940203aSZachary Turner #include "OutputStyle.h" 13d1de2f4fSZachary Turner #include "StreamUtil.h" 149940203aSZachary Turner 15*75112133SCarlos Alberto Enciso #include "llvm/DebugInfo/PDB/Native/LinePrinter.h" 169940203aSZachary Turner #include "llvm/Support/Error.h" 179940203aSZachary Turner 189940203aSZachary Turner namespace llvm { 199940203aSZachary Turner 20c2f5b4bfSZachary Turner namespace codeview { 21c2f5b4bfSZachary Turner class LazyRandomTypeCollection; 22c2f5b4bfSZachary Turner } 23c2f5b4bfSZachary Turner 249940203aSZachary Turner namespace pdb { 259940203aSZachary Turner 269940203aSZachary Turner class PDBFile; 279940203aSZachary Turner 289940203aSZachary Turner class BytesOutputStyle : public OutputStyle { 299940203aSZachary Turner public: 309940203aSZachary Turner BytesOutputStyle(PDBFile &File); 319940203aSZachary Turner 329940203aSZachary Turner Error dump() override; 339940203aSZachary Turner 349940203aSZachary Turner private: 356c3e41bbSZachary Turner void dumpNameMap(); 369940203aSZachary Turner void dumpBlockRanges(uint32_t Min, uint32_t Max); 376b124f29SZachary Turner void dumpByteRanges(uint32_t Min, uint32_t Max); 38c3d8eec9SZachary Turner void dumpFpm(); 399940203aSZachary Turner void dumpStreamBytes(); 409940203aSZachary Turner 41dd739682SZachary Turner void dumpSectionContributions(); 42dd739682SZachary Turner void dumpSectionMap(); 43dd739682SZachary Turner void dumpModuleInfos(); 44dd739682SZachary Turner void dumpFileInfo(); 45dd739682SZachary Turner void dumpTypeServerMap(); 46dd739682SZachary Turner void dumpECData(); 47dd739682SZachary Turner 48fa332827SZachary Turner void dumpModuleSyms(); 49fa332827SZachary Turner void dumpModuleC11(); 50fa332827SZachary Turner void dumpModuleC13(); 51fa332827SZachary Turner 52c2f5b4bfSZachary Turner void dumpTypeIndex(uint32_t StreamIdx, ArrayRef<uint32_t> Indices); 53c2f5b4bfSZachary Turner 54c2f5b4bfSZachary Turner Expected<codeview::LazyRandomTypeCollection &> 55c2f5b4bfSZachary Turner initializeTypes(uint32_t StreamIdx); 56c2f5b4bfSZachary Turner 57c2f5b4bfSZachary Turner std::unique_ptr<codeview::LazyRandomTypeCollection> TpiTypes; 58c2f5b4bfSZachary Turner std::unique_ptr<codeview::LazyRandomTypeCollection> IpiTypes; 59c2f5b4bfSZachary Turner 609940203aSZachary Turner PDBFile &File; 619940203aSZachary Turner LinePrinter P; 626c3e41bbSZachary Turner ExitOnError Err; 63d1de2f4fSZachary Turner SmallVector<StreamInfo, 8> StreamPurposes; 649940203aSZachary Turner }; 659940203aSZachary Turner } // namespace pdb 669940203aSZachary Turner } // namespace llvm 679940203aSZachary Turner 689940203aSZachary Turner #endif 69