69 lines · c
1//===- BytesOutputStyle.h ------------------------------------- *- 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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_TOOLS_LLVMPDBDUMP_BYTESOUTPUTSTYLE_H10#define LLVM_TOOLS_LLVMPDBDUMP_BYTESOUTPUTSTYLE_H11 12#include "OutputStyle.h"13#include "StreamUtil.h"14 15#include "llvm/DebugInfo/PDB/Native/LinePrinter.h"16#include "llvm/Support/Error.h"17 18namespace llvm {19 20namespace codeview {21class LazyRandomTypeCollection;22}23 24namespace pdb {25 26class PDBFile;27 28class BytesOutputStyle : public OutputStyle {29public:30 BytesOutputStyle(PDBFile &File);31 32 Error dump() override;33 34private:35 void dumpNameMap();36 void dumpBlockRanges(uint32_t Min, uint32_t Max);37 void dumpByteRanges(uint32_t Min, uint32_t Max);38 void dumpFpm();39 void dumpStreamBytes();40 41 void dumpSectionContributions();42 void dumpSectionMap();43 void dumpModuleInfos();44 void dumpFileInfo();45 void dumpTypeServerMap();46 void dumpECData();47 48 void dumpModuleSyms();49 void dumpModuleC11();50 void dumpModuleC13();51 52 void dumpTypeIndex(uint32_t StreamIdx, ArrayRef<uint32_t> Indices);53 54 Expected<codeview::LazyRandomTypeCollection &>55 initializeTypes(uint32_t StreamIdx);56 57 std::unique_ptr<codeview::LazyRandomTypeCollection> TpiTypes;58 std::unique_ptr<codeview::LazyRandomTypeCollection> IpiTypes;59 60 PDBFile &File;61 LinePrinter P;62 ExitOnError Err;63 SmallVector<StreamInfo, 8> StreamPurposes;64};65} // namespace pdb66} // namespace llvm67 68#endif69