9#ifndef LLVM_DEBUGINFO_PDB_NATIVE_PDBFILE_H
10#define LLVM_DEBUGINFO_PDB_NATIVE_PDBFILE_H
27class MappedBlockStream;
34class InjectedSourceStream;
52 uint32_t getFreeBlockMapBlock()
const;
55 uint32_t getBlockSize()
const override;
56 uint32_t getBlockCount()
const override;
57 uint32_t getNumDirectoryBytes()
const;
59 uint32_t getNumDirectoryBlocks()
const;
62 uint32_t getNumStreams()
const override;
66 getStreamBlockList(
uint32_t StreamIndex)
const override;
75 return ContainerLayout.StreamSizes;
78 return ContainerLayout.StreamMap;
86 std::unique_ptr<msf::MappedBlockStream>
87 createIndexedStream(
uint16_t SN)
const;
89 safelyCreateIndexedStream(
uint32_t StreamIndex)
const;
96 Error parseFileHeaders();
97 Error parseStreamData();
111 bool hasPDBDbiStream()
const;
112 bool hasPDBGlobalsStream();
113 bool hasPDBInfoStream()
const;
114 bool hasPDBIpiStream()
const;
115 bool hasPDBPublicsStream();
116 bool hasPDBSymbolStream();
117 bool hasPDBTpiStream()
const;
118 bool hasPDBStringTable();
119 bool hasPDBInjectedSourceStream();
124 std::string FilePath;
127 std::unique_ptr<BinaryStream> Buffer;
131 std::unique_ptr<GlobalsStream> Globals;
132 std::unique_ptr<InfoStream>
Info;
133 std::unique_ptr<DbiStream> Dbi;
134 std::unique_ptr<TpiStream> Tpi;
135 std::unique_ptr<TpiStream> Ipi;
136 std::unique_ptr<PublicsStream> Publics;
137 std::unique_ptr<SymbolStream> Symbols;
138 std::unique_ptr<msf::MappedBlockStream> DirectoryStream;
139 std::unique_ptr<msf::MappedBlockStream> StringTableStream;
141 std::unique_ptr<PDBStringTable> Strings;
This file defines the BumpPtrAllocator interface.
Analysis containing CSE Info
static std::optional< TypeSize > getPointerSize(const Value *V, const DataLayout &DL, const TargetLibraryInfo &TLI, const Function *F)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
BinaryStreamRef is to BinaryStream what ArrayRef is to an Array.
Allocate memory in an ever growing pool, as if by bump-pointer.
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
StringRef - Represent a constant reference to a string, i.e.
Describes the layout of a stream in an MSF layout.
ArrayRef< support::ulittle32_t > getStreamSizes() const
const msf::MSFLayout & getMsfLayout() const
BinaryStreamRef getMsfBuffer() const
ArrayRef< ArrayRef< support::ulittle32_t > > getStreamMap() const
BumpPtrAllocator & getAllocator()
This is an optimization pass for GlobalISel generic memory operations.