9#ifndef LLVM_DEBUGINFO_PDB_NATIVE_PDBFILE_H
10#define LLVM_DEBUGINFO_PDB_NATIVE_PDBFILE_H
42 friend PDBFileBuilder;
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.
An interface for accessing data in a stream-like format, but which discourages copying.
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.
MappedBlockStream represents data stored in an MSF file into chunks of a particular size (called the ...
ArrayRef< support::ulittle32_t > getStreamSizes() const
const msf::MSFLayout & getMsfLayout() const
uint32_t getNumDirectoryBlocks() const
uint32_t getBlockSize() const override
uint32_t getUnknown1() const
uint32_t getBlockMapIndex() const
BinaryStreamRef getMsfBuffer() const
PDBFile(StringRef Path, std::unique_ptr< BinaryStream > PdbFileBuffer, BumpPtrAllocator &Allocator)
uint32_t getBlockCount() const override
StringRef getFileDirectory() const
uint32_t getMaxStreamSize() const
ArrayRef< ArrayRef< support::ulittle32_t > > getStreamMap() const
Error setBlockData(uint32_t BlockIndex, uint32_t Offset, ArrayRef< uint8_t > Data) const override
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
StringRef getFilePath() const
ArrayRef< support::ulittle32_t > getStreamBlockList(uint32_t StreamIndex) const override
uint32_t getNumDirectoryBytes() const
This is an optimization pass for GlobalISel generic memory operations.
BumpPtrAllocatorImpl BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.