LLVM: include/llvm/DebugInfo/PDB/Native/PDBFile.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_DEBUGINFO_PDB_NATIVE_PDBFILE_H

10#define LLVM_DEBUGINFO_PDB_NATIVE_PDBFILE_H

11

19

20#include

21

22namespace llvm {

23

25

26namespace msf {

28}

29

30namespace pdb {

40

42 friend PDBFileBuilder;

43

44public:

48

51

54

61

68

70 uint32_t NumBytes) const override;

73

75 return ContainerLayout.StreamSizes;

76 }

78 return ContainerLayout.StreamMap;

79 }

80

83

85

86 std::unique_ptrmsf::MappedBlockStream

87 createIndexedStream(uint16_t SN) const;

89 safelyCreateIndexedStream(uint32_t StreamIndex) const;

91 safelyCreateNamedStream(StringRef Name);

92

95

96 Error parseFileHeaders();

97 Error parseStreamData();

98

108

110

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();

120

122

123private:

124 std::string FilePath;

126

127 std::unique_ptr Buffer;

128

130

131 std::unique_ptr Globals;

132 std::unique_ptr Info;

133 std::unique_ptr Dbi;

134 std::unique_ptr Tpi;

135 std::unique_ptr Ipi;

136 std::unique_ptr Publics;

137 std::unique_ptr Symbols;

138 std::unique_ptrmsf::MappedBlockStream DirectoryStream;

139 std::unique_ptrmsf::MappedBlockStream StringTableStream;

141 std::unique_ptr Strings;

142};

143}

144}

145

146#endif

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

Definition PDBFile.h:74

const msf::MSFLayout & getMsfLayout() const

Definition PDBFile.h:81

uint32_t getNumDirectoryBlocks() const

uint32_t getBlockSize() const override

uint32_t getUnknown1() const

uint32_t getBlockMapIndex() const

BinaryStreamRef getMsfBuffer() const

Definition PDBFile.h:82

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

Definition PDBFile.h:77

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()

Definition PDBFile.h:109

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.