9#ifndef LLVM_DEBUGINFO_PDB_NATIVE_PDBFILE_H
10#define LLVM_DEBUGINFO_PDB_NATIVE_PDBFILE_H
26class MappedBlockStream;
33class InjectedSourceStream;
85 std::unique_ptr<msf::MappedBlockStream>
123 std::string FilePath;
126 std::unique_ptr<BinaryStream> Buffer;
130 std::unique_ptr<GlobalsStream> Globals;
131 std::unique_ptr<InfoStream> Info;
132 std::unique_ptr<DbiStream> Dbi;
133 std::unique_ptr<TpiStream> Tpi;
134 std::unique_ptr<TpiStream> Ipi;
135 std::unique_ptr<PublicsStream> Publics;
136 std::unique_ptr<SymbolStream> Symbols;
137 std::unique_ptr<msf::MappedBlockStream> DirectoryStream;
138 std::unique_ptr<msf::MappedBlockStream> StringTableStream;
139 std::unique_ptr<InjectedSourceStream> InjectedSources;
140 std::unique_ptr<PDBStringTable> Strings;
This file defines the BumpPtrAllocator interface.
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
uint32_t getNumDirectoryBlocks() const
bool hasPDBInjectedSourceStream()
Expected< InjectedSourceStream & > getInjectedSourceStream()
Expected< GlobalsStream & > getPDBGlobalsStream()
uint32_t getPointerSize()
Expected< TpiStream & > getPDBIpiStream()
uint32_t getBlockSize() const override
Expected< std::unique_ptr< msf::MappedBlockStream > > safelyCreateIndexedStream(uint32_t StreamIndex) const
Wrapper around MappedBlockStream::createIndexedStream() that checks if a stream with that index actua...
uint32_t getUnknown1() const
uint32_t getBlockMapIndex() const
Expected< DbiStream & > getPDBDbiStream()
Expected< InfoStream & > getPDBInfoStream()
BinaryStreamRef getMsfBuffer() const
bool hasPDBTpiStream() const
bool hasPDBSymbolStream()
bool hasPDBPublicsStream()
uint32_t getBlockCount() const override
bool hasPDBGlobalsStream()
StringRef getFileDirectory() const
uint32_t getMaxStreamSize() const
msf::MSFStreamLayout getFpmStreamLayout() const
Expected< PublicsStream & > getPDBPublicsStream()
ArrayRef< ArrayRef< support::ulittle32_t > > getStreamMap() const
Error setBlockData(uint32_t BlockIndex, uint32_t Offset, ArrayRef< uint8_t > Data) const override
Expected< TpiStream & > getPDBTpiStream()
msf::MSFStreamLayout getStreamLayout(uint32_t StreamIdx) const
bool hasPDBIpiStream() const
Expected< SymbolStream & > getPDBSymbolStream()
uint64_t getBlockMapOffset() const
uint64_t getFileSize() const
Expected< ArrayRef< uint8_t > > getBlockData(uint32_t BlockIndex, uint32_t NumBytes) const override
uint32_t getFreeBlockMapBlock() const
BumpPtrAllocator & getAllocator()
uint32_t getStreamByteSize(uint32_t StreamIndex) const override
uint32_t getNumStreams() const override
bool hasPDBInfoStream() const
StringRef getFilePath() const
ArrayRef< support::ulittle32_t > getStreamBlockList(uint32_t StreamIndex) const override
uint32_t getNumDirectoryBytes() const
bool hasPDBDbiStream() const
Expected< std::unique_ptr< msf::MappedBlockStream > > safelyCreateNamedStream(StringRef Name)
ArrayRef< support::ulittle32_t > getDirectoryBlockArray() const
Expected< PDBStringTable & > getStringTable()
std::unique_ptr< msf::MappedBlockStream > createIndexedStream(uint16_t SN) const
This is an optimization pass for GlobalISel generic memory operations.
ArrayRef< support::ulittle32_t > StreamSizes
std::vector< ArrayRef< support::ulittle32_t > > StreamMap