LLVM  6.0.0svn
Classes | Typedefs | Enumerations | Functions | Variables
llvm::pdb Namespace Reference

Classes

class  BaseClassLayout
 
class  ClassLayout
 
class  ConcreteSymbolEnumerator
 
class  DataMemberLayoutItem
 
struct  DbiBuildNo
 
struct  DbiFlags
 Some of the values are stored in bitfields. More...
 
class  DbiModuleDescriptor
 
class  DbiModuleDescriptorBuilder
 
class  DbiModuleList
 
class  DbiModuleSourceFilesIterator
 
class  DbiStream
 
class  DbiStreamBuilder
 
struct  DbiStreamHeader
 The fixed size header that appears at the beginning of the DBI Stream. More...
 
class  DIADataStream
 
class  DIAEnumDebugStreams
 
class  DIAEnumLineNumbers
 
class  DIAEnumSourceFiles
 
class  DIAEnumSymbols
 
class  DIAEnumTables
 
class  DIAError
 Base class for errors originating in DIA SDK, e.g. COM calls. More...
 
class  DIALineNumber
 
class  DIARawSymbol
 
class  DIASession
 
class  DIASourceFile
 
class  DIATable
 
struct  FileInfoSubstreamHeader
 The header preceeding the File Info Substream of the DBI stream. More...
 
class  GenericError
 Base class for errors originating when parsing raw PDB files. More...
 
class  GlobalsStream
 
struct  GSIHashHeader
 Header of the hash tables found in the globals and publics sections. More...
 
class  GSIHashIterator
 Iterator over hash records producing symbol record offsets. More...
 
struct  GSIHashStreamBuilder
 
class  GSIHashTable
 A readonly view of a hash table used in the globals and publics streams. More...
 
class  GSIStreamBuilder
 
class  HashTable
 
class  HashTableIterator
 
class  InfoStream
 
class  InfoStreamBuilder
 
struct  InfoStreamHeader
 The header preceeding the global PDB Stream (Stream 1) More...
 
class  IPDBDataStream
 IPDBDataStream defines an interface used to represent a stream consisting of a name and a series of records whose formats depend on the particular stream type. More...
 
class  IPDBEnumChildren
 
class  IPDBLineNumber
 
class  IPDBRawSymbol
 IPDBRawSymbol defines an interface used to represent an arbitrary symbol. More...
 
class  IPDBSession
 IPDBSession defines an interface used to provide a context for querying debug information from a debug data source (for example, a PDB). More...
 
class  IPDBSourceFile
 IPDBSourceFile defines an interface used to represent source files whose information are stored in the PDB. More...
 
class  IPDBTable
 
class  ISectionContribVisitor
 
class  LayoutItemBase
 
struct  ModInfoFlags
 
class  ModuleDebugStreamRef
 
struct  ModuleInfoHeader
 The header preceeding each entry in the Module Info substream of the DBI stream. More...
 
class  NamedStreamMap
 
class  NativeBuiltinSymbol
 
class  NativeCompilandSymbol
 
class  NativeEnumModules
 
class  NativeEnumSymbol
 
class  NativeEnumTypes
 
class  NativeExeSymbol
 
class  NativeRawSymbol
 
class  NativeSession
 
class  PDBContext
 PDBContext This data structure is the top level entity that deals with PDB debug information parsing. More...
 
class  PDBFile
 
class  PDBFileBuilder
 
class  PDBStringTable
 
class  PDBStringTableBuilder
 
struct  PDBStringTableHeader
 The header preceeding the /names stream. More...
 
class  PDBSymbol
 PDBSymbol defines the base of the inheritance hierarchy for concrete symbol types (e.g. More...
 
class  PDBSymbolAnnotation
 
class  PDBSymbolBlock
 
class  PDBSymbolCompiland
 
class  PDBSymbolCompilandDetails
 
class  PDBSymbolCompilandEnv
 
class  PDBSymbolCustom
 PDBSymbolCustom represents symbols that are compiler-specific and do not fit anywhere else in the lexical hierarchy. More...
 
class  PDBSymbolData
 
class  PDBSymbolExe
 
class  PDBSymbolFunc
 
class  PDBSymbolFuncDebugEnd
 
class  PDBSymbolFuncDebugStart
 
class  PDBSymbolLabel
 
class  PDBSymbolPublicSymbol
 
class  PDBSymbolThunk
 
class  PDBSymbolTypeArray
 
class  PDBSymbolTypeBaseClass
 
class  PDBSymbolTypeBuiltin
 
class  PDBSymbolTypeCustom
 
class  PDBSymbolTypeDimension
 
class  PDBSymbolTypeEnum
 
class  PDBSymbolTypeFriend
 
class  PDBSymbolTypeFunctionArg
 
class  PDBSymbolTypeFunctionSig
 
class  PDBSymbolTypeManaged
 
class  PDBSymbolTypePointer
 
class  PDBSymbolTypeTypedef
 
class  PDBSymbolTypeUDT
 
class  PDBSymbolTypeVTable
 
class  PDBSymbolTypeVTableShape
 
class  PDBSymbolUnknown
 
class  PDBSymbolUsingNamespace
 
class  PDBSymDumper
 
struct  PSHashRecord
 
class  PublicsStream
 
struct  PublicsStreamHeader
 
class  RawError
 Base class for errors originating when parsing raw PDB files. More...
 
struct  SecMapEntry
 
struct  SecMapHeader
 
struct  SectionContrib
 
struct  SectionContrib2
 
struct  SectionContribEntry
 
struct  SectionOffset
 
class  SymbolStream
 
class  TpiStream
 
class  TpiStreamBuilder
 
struct  TpiStreamHeader
 
class  UDTLayoutBase
 
struct  Variant
 
class  VBPtrLayoutItem
 
struct  VersionInfo
 
class  VTableLayoutItem
 

Typedefs

typedef uint32_t SymIndexId
 
using TagStats = std::unordered_map< PDB_SymType, int >
 
using IPDBEnumSymbols = IPDBEnumChildren< PDBSymbol >
 
using IPDBEnumSourceFiles = IPDBEnumChildren< IPDBSourceFile >
 
using IPDBEnumDataStreams = IPDBEnumChildren< IPDBDataStream >
 
using IPDBEnumLineNumbers = IPDBEnumChildren< IPDBLineNumber >
 
using IPDBEnumTables = IPDBEnumChildren< IPDBTable >
 
using PDB_Cpu = codeview::CPUType
 These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx. More...
 
using PDB_CallingConv = codeview::CallingConvention
 These values correspond to the CV_call_e enumeration, and are documented at the following locations: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms680207(v=vs.85).aspx. More...
 
using PDB_Lang = codeview::SourceLanguage
 These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bw3aekw6.aspx. More...
 

Enumerations

enum  dia_error_code {
  dia_error_code::unspecified = 1, dia_error_code::could_not_create_impl, dia_error_code::invalid_file_format, dia_error_code::invalid_parameter,
  dia_error_code::already_loaded, dia_error_code::debug_info_mismatch
}
 
enum  generic_error_code { generic_error_code::invalid_path = 1, generic_error_code::dia_sdk_not_present, generic_error_code::type_server_not_found, generic_error_code::unspecified }
 
enum  : unsigned { IPHR_HASH = 4096 }
 From https://github.com/Microsoft/microsoft-pdb/blob/master/PDB/dbi/gsi.cpp. More...
 
enum  PdbRaw_ImplVer : uint32_t {
  PdbImplVC2 = 19941610, PdbImplVC4 = 19950623, PdbImplVC41 = 19950814, PdbImplVC50 = 19960307,
  PdbImplVC98 = 19970604, PdbImplVC70Dep = 19990604, PdbImplVC70 = 20000404, PdbImplVC80 = 20030901,
  PdbImplVC110 = 20091201, PdbImplVC140 = 20140508
}
 
enum  PdbRaw_FeatureSig : uint32_t { PdbRaw_FeatureSig::VC110 = PdbImplVC110, PdbRaw_FeatureSig::VC140 = PdbImplVC140, PdbRaw_FeatureSig::NoTypeMerge = 0x4D544F4E, PdbRaw_FeatureSig::MinimalDebugInfo = 0x494E494D }
 
enum  PdbRaw_Features : uint32_t { PdbFeatureNone = 0x0, PdbFeatureContainsIdStream = 0x1, PdbFeatureMinimalDebugInfo = 0x2, PdbFeatureNoTypeMerging = 0x4 }
 
enum  PdbRaw_DbiVer : uint32_t {
  PdbDbiVC41 = 930803, PdbDbiV50 = 19960307, PdbDbiV60 = 19970606, PdbDbiV70 = 19990903,
  PdbDbiV110 = 20091201
}
 
enum  PdbRaw_TpiVer : uint32_t {
  PdbTpiV40 = 19950410, PdbTpiV41 = 19951122, PdbTpiV50 = 19961031, PdbTpiV70 = 19990903,
  PdbTpiV80 = 20040203
}
 
enum  PdbRaw_DbiSecContribVer : uint32_t { DbiSecContribVer60 = 0xeffe0000 + 19970605, DbiSecContribV2 = 0xeffe0000 + 20140516 }
 
enum  SpecialStream : uint32_t {
  OldMSFDirectory = 0, StreamPDB = 1, StreamTPI = 2, StreamDBI = 3,
  StreamIPI = 4, kSpecialStreamCount
}
 
enum  DbgHeaderType : uint16_t {
  DbgHeaderType::FPO, DbgHeaderType::Exception, DbgHeaderType::Fixup, DbgHeaderType::OmapToSrc,
  DbgHeaderType::OmapFromSrc, DbgHeaderType::SectionHdr, DbgHeaderType::TokenRidMap, DbgHeaderType::Xdata,
  DbgHeaderType::Pdata, DbgHeaderType::NewFPO, DbgHeaderType::SectionHdrOrig, DbgHeaderType::Max
}
 
enum  OMFSegDescFlags : uint16_t {
  OMFSegDescFlags::None = 0, OMFSegDescFlags::Read = 1 << 0, OMFSegDescFlags::Write = 1 << 1, OMFSegDescFlags::Execute = 1 << 2,
  OMFSegDescFlags::AddressIs32Bit = 1 << 3, OMFSegDescFlags::IsSelector = 1 << 8, OMFSegDescFlags::IsAbsoluteAddress = 1 << 9, OMFSegDescFlags::IsGroup = 1 << 10
}
 
enum  raw_error_code {
  raw_error_code::unspecified = 1, raw_error_code::feature_unsupported, raw_error_code::invalid_format, raw_error_code::corrupt_file,
  raw_error_code::insufficient_buffer, raw_error_code::no_stream, raw_error_code::index_out_of_bounds, raw_error_code::invalid_block_address,
  raw_error_code::duplicate_entry, raw_error_code::no_entry, raw_error_code::not_writable, raw_error_code::stream_too_long,
  raw_error_code::invalid_tpi_hash
}
 
enum  PDB_ReaderType { PDB_ReaderType::DIA = 0, PDB_ReaderType::Native = 1 }
 Specifies which PDB reader implementation is to be used. More...
 
enum  PDB_TableType {
  PDB_TableType::TableInvalid = 0, PDB_TableType::Symbols, PDB_TableType::SourceFiles, PDB_TableType::LineNumbers,
  PDB_TableType::SectionContribs, PDB_TableType::Segments, PDB_TableType::InjectedSources, PDB_TableType::FrameData,
  PDB_TableType::InputAssemblyFiles, PDB_TableType::Dbg
}
 An enumeration indicating the type of data contained in this table. More...
 
enum  PDB_NameSearchFlags {
  NS_Default = 0x0, NS_CaseSensitive = 0x1, NS_CaseInsensitive = 0x2, NS_FileNameExtMatch = 0x4,
  NS_Regex = 0x8, NS_UndecoratedName = 0x10
}
 Defines flags used for enumerating child symbols. More...
 
enum  PDB_Checksum { PDB_Checksum::None = 0, PDB_Checksum::MD5 = 1, PDB_Checksum::SHA1 = 2 }
 Specifies the hash algorithm that a source file from a PDB was hashed with. More...
 
enum  PDB_Machine {
  PDB_Machine::Invalid = 0xffff, Unknown = 0x0, PDB_Machine::Am33 = 0x13, PDB_Machine::Amd64 = 0x8664,
  PDB_Machine::Arm = 0x1C0, PDB_Machine::ArmNT = 0x1C4, PDB_Machine::Ebc = 0xEBC, PDB_Machine::x86 = 0x14C,
  PDB_Machine::Ia64 = 0x200, PDB_Machine::M32R = 0x9041, PDB_Machine::Mips16 = 0x266, PDB_Machine::MipsFpu = 0x366,
  PDB_Machine::MipsFpu16 = 0x466, PDB_Machine::PowerPC = 0x1F0, PDB_Machine::PowerPCFP = 0x1F1, PDB_Machine::R4000 = 0x166,
  PDB_Machine::SH3 = 0x1A2, PDB_Machine::SH3DSP = 0x1A3, PDB_Machine::SH4 = 0x1A6, PDB_Machine::SH5 = 0x1A8,
  PDB_Machine::Thumb = 0x1C2, PDB_Machine::WceMipsV2 = 0x169
}
 
enum  PDB_DataKind {
  Unknown, PDB_DataKind::Local, PDB_DataKind::StaticLocal, PDB_DataKind::Param,
  PDB_DataKind::ObjectPtr, PDB_DataKind::FileStatic, PDB_DataKind::Global, PDB_DataKind::Member,
  PDB_DataKind::StaticMember, PDB_DataKind::Constant
}
 These values correspond to the DataKind enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2x2t313.aspx. More...
 
enum  PDB_SymType {
  PDB_SymType::None, PDB_SymType::Exe, PDB_SymType::Compiland, PDB_SymType::CompilandDetails,
  PDB_SymType::CompilandEnv, PDB_SymType::Function, PDB_SymType::Block, PDB_SymType::Data,
  PDB_SymType::Annotation, PDB_SymType::Label, PDB_SymType::PublicSymbol, PDB_SymType::UDT,
  PDB_SymType::Enum, PDB_SymType::FunctionSig, PDB_SymType::PointerType, PDB_SymType::ArrayType,
  PDB_SymType::BuiltinType, PDB_SymType::Typedef, PDB_SymType::BaseClass, PDB_SymType::Friend,
  PDB_SymType::FunctionArg, PDB_SymType::FuncDebugStart, PDB_SymType::FuncDebugEnd, PDB_SymType::UsingNamespace,
  PDB_SymType::VTableShape, PDB_SymType::VTable, PDB_SymType::Custom, PDB_SymType::Thunk,
  PDB_SymType::CustomType, PDB_SymType::ManagedType, PDB_SymType::Dimension, PDB_SymType::Max
}
 These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bkedss5f.aspx. More...
 
enum  PDB_LocType {
  PDB_LocType::Null, PDB_LocType::Static, PDB_LocType::TLS, PDB_LocType::RegRel,
  PDB_LocType::ThisRel, PDB_LocType::Enregistered, PDB_LocType::BitField, PDB_LocType::Slot,
  PDB_LocType::IlRel, PDB_LocType::MetaData, PDB_LocType::Constant, PDB_LocType::Max
}
 These values correspond to the LocationType enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/f57kaez3.aspx. More...
 
enum  PDB_UdtType { PDB_UdtType::Struct, PDB_UdtType::Class, PDB_UdtType::Union, PDB_UdtType::Interface }
 These values correspond to the UdtKind enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/wcstk66t.aspx. More...
 
enum  PDB_StackFrameType {
  PDB_StackFrameType::FPO, PDB_StackFrameType::KernelTrap, PDB_StackFrameType::KernelTSS, PDB_StackFrameType::EBP,
  PDB_StackFrameType::FrameData
}
 These values correspond to the StackFrameTypeEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bc5207xw.aspx. More...
 
enum  PDB_MemoryType { PDB_MemoryType::Code, PDB_MemoryType::Data, PDB_MemoryType::Stack, PDB_MemoryType::HeapCode }
 These values correspond to the StackFrameTypeEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bc5207xw.aspx. More...
 
enum  PDB_BuiltinType {
  PDB_BuiltinType::None = 0, PDB_BuiltinType::Void = 1, PDB_BuiltinType::Char = 2, PDB_BuiltinType::WCharT = 3,
  PDB_BuiltinType::Int = 6, PDB_BuiltinType::UInt = 7, PDB_BuiltinType::Float = 8, PDB_BuiltinType::BCD = 9,
  Bool = 10, PDB_BuiltinType::Long = 13, PDB_BuiltinType::ULong = 14, PDB_BuiltinType::Currency = 25,
  PDB_BuiltinType::Date = 26, PDB_BuiltinType::Variant = 27, PDB_BuiltinType::Complex = 28, PDB_BuiltinType::Bitfield = 29,
  PDB_BuiltinType::BSTR = 30, PDB_BuiltinType::HResult = 31
}
 These values correspond to the Basictype enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/4szdtzc3.aspx. More...
 
enum  PDB_UndnameFlags : uint32_t {
  Undname_Complete = 0x0, Undname_NoLeadingUnderscores = 0x1, Undname_NoMsKeywords = 0x2, Undname_NoFuncReturns = 0x4,
  Undname_NoAllocModel = 0x8, Undname_NoAllocLang = 0x10, Undname_Reserved1 = 0x20, Undname_Reserved2 = 0x40,
  Undname_NoThisType = 0x60, Undname_NoAccessSpec = 0x80, Undname_NoThrowSig = 0x100, Undname_NoMemberType = 0x200,
  Undname_NoReturnUDTModel = 0x400, Undname_32BitDecode = 0x800, Undname_NameOnly = 0x1000, Undname_TypeOnly = 0x2000,
  Undname_HaveParams = 0x4000, Undname_NoECSU = 0x8000, Undname_NoIdentCharCheck = 0x10000, Undname_NoPTR64 = 0x20000
}
 These values correspond to the flags that can be combined to control the return of an undecorated name for a C++ decorated name, and are documented here: https://msdn.microsoft.com/en-us/library/kszfk0fs.aspx. More...
 
enum  PDB_MemberAccess { PDB_MemberAccess::Private = 1, PDB_MemberAccess::Protected = 2, PDB_MemberAccess::Public = 3 }
 
enum  PDB_VariantType {
  Empty, Unknown, Unknown = 0x0, Unknown,
  Int8, Int16, Int32, Int64,
  Single, Double, UInt8, UInt16,
  UInt32, UInt64, Bool, Bool = 10,
  String
}
 

Functions

ArrayRef< EnumEntry< uint16_t > > getOMFSegMapDescFlagNames ()
 
uint32_t hashStringV1 (StringRef Str)
 
uint32_t hashStringV2 (StringRef Str)
 
uint32_t hashBufferV8 (ArrayRef< uint8_t > Data)
 
 LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ()
 
Expected< uint32_thashTypeRecord (const llvm::codeview::CVType &Type)
 
Error loadDataForPDB (PDB_ReaderType Type, StringRef Path, std::unique_ptr< IPDBSession > &Session)
 
Error loadDataForEXE (PDB_ReaderType Type, StringRef Path, std::unique_ptr< IPDBSession > &Session)
 
raw_ostreamoperator<< (raw_ostream &OS, const PDB_VariantType &Value)
 
raw_ostreamoperator<< (raw_ostream &OS, const PDB_CallingConv &Conv)
 
raw_ostreamoperator<< (raw_ostream &OS, const PDB_DataKind &Data)
 
raw_ostreamoperator<< (raw_ostream &OS, const codeview::RegisterId &Reg)
 
raw_ostreamoperator<< (raw_ostream &OS, const PDB_LocType &Loc)
 
raw_ostreamoperator<< (raw_ostream &OS, const codeview::ThunkOrdinal &Thunk)
 
raw_ostreamoperator<< (raw_ostream &OS, const PDB_Checksum &Checksum)
 
raw_ostreamoperator<< (raw_ostream &OS, const PDB_Lang &Lang)
 
raw_ostreamoperator<< (raw_ostream &OS, const PDB_SymType &Tag)
 
raw_ostreamoperator<< (raw_ostream &OS, const PDB_MemberAccess &Access)
 
raw_ostreamoperator<< (raw_ostream &OS, const PDB_UdtType &Type)
 
raw_ostreamoperator<< (raw_ostream &OS, const PDB_Machine &Machine)
 
raw_ostreamoperator<< (raw_ostream &OS, const Variant &Value)
 
raw_ostreamoperator<< (raw_ostream &OS, const VersionInfo &Version)
 
raw_ostreamoperator<< (raw_ostream &OS, const TagStats &Stats)
 

Variables

const uint16_t kInvalidStreamIndex = 0xFFFF
 
const uint32_t MinTpiHashBuckets = 0x1000
 
const uint32_t MaxTpiHashBuckets = 0x40000
 
const uint32_t PDBStringTableSignature = 0xEFFEEFFE
 

Typedef Documentation

◆ IPDBEnumDataStreams

Definition at line 64 of file PDBTypes.h.

◆ IPDBEnumLineNumbers

Definition at line 65 of file PDBTypes.h.

◆ IPDBEnumSourceFiles

Definition at line 63 of file PDBTypes.h.

◆ IPDBEnumSymbols

Definition at line 62 of file PDBTypes.h.

◆ IPDBEnumTables

Definition at line 66 of file PDBTypes.h.

◆ PDB_CallingConv

These values correspond to the CV_call_e enumeration, and are documented at the following locations: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms680207(v=vs.85).aspx.

Definition at line 139 of file PDBTypes.h.

◆ PDB_Cpu

These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx.

Definition at line 108 of file PDBTypes.h.

◆ PDB_Lang

These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bw3aekw6.aspx.

Definition at line 143 of file PDBTypes.h.

◆ SymIndexId

Definition at line 20 of file NativeRawSymbol.h.

◆ TagStats

using llvm::pdb::TagStats = typedef std::unordered_map<PDB_SymType, int>

Definition at line 23 of file PDBExtras.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum : unsigned

From https://github.com/Microsoft/microsoft-pdb/blob/master/PDB/dbi/gsi.cpp.

Enumerator
IPHR_HASH 

Definition at line 46 of file GlobalsStream.h.

◆ DbgHeaderType

enum llvm::pdb::DbgHeaderType : uint16_t
strong
Enumerator
FPO 
Exception 
Fixup 
OmapToSrc 
OmapFromSrc 
SectionHdr 
TokenRidMap 
Xdata 
Pdata 
NewFPO 
SectionHdrOrig 
Max 

Definition at line 85 of file RawConstants.h.

◆ dia_error_code

Enumerator
unspecified 
could_not_create_impl 
invalid_file_format 
invalid_parameter 
already_loaded 
debug_info_mismatch 

Definition at line 18 of file DIAError.h.

◆ generic_error_code

Enumerator
invalid_path 
dia_sdk_not_present 
type_server_not_found 
unspecified 

Definition at line 19 of file GenericError.h.

◆ OMFSegDescFlags

enum llvm::pdb::OMFSegDescFlags : uint16_t
strong
Enumerator
None 
Read 
Write 
Execute 
AddressIs32Bit 
IsSelector 
IsAbsoluteAddress 
IsGroup 

Definition at line 100 of file RawConstants.h.

◆ PDB_BuiltinType

These values correspond to the Basictype enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/4szdtzc3.aspx.

Enumerator
None 
Void 
Char 
WCharT 
Int 
UInt 
Float 
BCD 
Bool 
Long 
ULong 
Currency 
Date 
Variant 
Complex 
Bitfield 
BSTR 
HResult 

Definition at line 228 of file PDBTypes.h.

◆ PDB_Checksum

Specifies the hash algorithm that a source file from a PDB was hashed with.

This corresponds to the CV_SourceChksum_t enumeration and are documented here: https://msdn.microsoft.com/en-us/library/e96az21x.aspx

Enumerator
None 
MD5 
SHA1 

Definition at line 104 of file PDBTypes.h.

◆ PDB_DataKind

These values correspond to the DataKind enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2x2t313.aspx.

Enumerator
Unknown 
Local 
StaticLocal 
Param 
ObjectPtr 
FileStatic 
Global 
Member 
StaticMember 
Constant 

Definition at line 147 of file PDBTypes.h.

◆ PDB_LocType

These values correspond to the LocationType enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/f57kaez3.aspx.

Enumerator
Null 
Static 
TLS 
RegRel 
ThisRel 
Enregistered 
BitField 
Slot 
IlRel 
MetaData 
Constant 
Max 

Definition at line 199 of file PDBTypes.h.

◆ PDB_Machine

Enumerator
Invalid 
Unknown 
Am33 
Amd64 
Arm 
ArmNT 
Ebc 
x86 
Ia64 
M32R 
Mips16 
MipsFpu 
MipsFpu16 
PowerPC 
PowerPCFP 
R4000 
SH3 
SH3DSP 
SH4 
SH5 
Thumb 
WceMipsV2 

Definition at line 110 of file PDBTypes.h.

◆ PDB_MemberAccess

Enumerator
Private 
Protected 
Public 

Definition at line 275 of file PDBTypes.h.

◆ PDB_MemoryType

These values correspond to the StackFrameTypeEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bc5207xw.aspx.

Enumerator
Code 
Data 
Stack 
HeapCode 

Definition at line 224 of file PDBTypes.h.

◆ PDB_NameSearchFlags

Defines flags used for enumerating child symbols.

This corresponds to the NameSearchOptions enumeration which is documented here: https://msdn.microsoft.com/en-us/library/yat28ads.aspx

Enumerator
NS_Default 
NS_CaseSensitive 
NS_CaseInsensitive 
NS_FileNameExtMatch 
NS_Regex 
NS_UndecoratedName 

Definition at line 92 of file PDBTypes.h.

◆ PDB_ReaderType

Specifies which PDB reader implementation is to be used.

Only a value of PDB_ReaderType::DIA is currently supported, but Native is in the works.

Enumerator
DIA 
Native 

Definition at line 70 of file PDBTypes.h.

◆ PDB_StackFrameType

These values correspond to the StackFrameTypeEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bc5207xw.aspx.

Enumerator
FPO 
KernelTrap 
KernelTSS 
EBP 
FrameData 

Definition at line 220 of file PDBTypes.h.

◆ PDB_SymType

These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bkedss5f.aspx.

Enumerator
None 
Exe 
Compiland 
CompilandDetails 
CompilandEnv 
Function 
Block 
Data 
Annotation 
Label 
PublicSymbol 
UDT 
Enum 
FunctionSig 
PointerType 
ArrayType 
BuiltinType 
Typedef 
BaseClass 
Friend 
FunctionArg 
FuncDebugStart 
FuncDebugEnd 
UsingNamespace 
VTableShape 
VTable 
Custom 
Thunk 
CustomType 
ManagedType 
Dimension 
Max 

Definition at line 162 of file PDBTypes.h.

◆ PDB_TableType

An enumeration indicating the type of data contained in this table.

Enumerator
TableInvalid 
Symbols 
SourceFiles 
LineNumbers 
SectionContribs 
Segments 
InjectedSources 
FrameData 
InputAssemblyFiles 
Dbg 

Definition at line 76 of file PDBTypes.h.

◆ PDB_UdtType

These values correspond to the UdtKind enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/wcstk66t.aspx.

Enumerator
Struct 
Class 
Union 
Interface 

Definition at line 216 of file PDBTypes.h.

◆ PDB_UndnameFlags

These values correspond to the flags that can be combined to control the return of an undecorated name for a C++ decorated name, and are documented here: https://msdn.microsoft.com/en-us/library/kszfk0fs.aspx.

Enumerator
Undname_Complete 
Undname_NoLeadingUnderscores 
Undname_NoMsKeywords 
Undname_NoFuncReturns 
Undname_NoAllocModel 
Undname_NoAllocLang 
Undname_Reserved1 
Undname_Reserved2 
Undname_NoThisType 
Undname_NoAccessSpec 
Undname_NoThrowSig 
Undname_NoMemberType 
Undname_NoReturnUDTModel 
Undname_32BitDecode 
Undname_NameOnly 
Undname_TypeOnly 
Undname_HaveParams 
Undname_NoECSU 
Undname_NoIdentCharCheck 
Undname_NoPTR64 

Definition at line 252 of file PDBTypes.h.

◆ PDB_VariantType

Enumerator
Empty 
Unknown 
Unknown 
Unknown 
Int8 
Int16 
Int32 
Int64 
Single 
Double 
UInt8 
UInt16 
UInt32 
UInt64 
Bool 
Bool 
String 

Definition at line 284 of file PDBTypes.h.

◆ PdbRaw_DbiSecContribVer

Enumerator
DbiSecContribVer60 
DbiSecContribV2 

Definition at line 66 of file RawConstants.h.

◆ PdbRaw_DbiVer

Enumerator
PdbDbiVC41 
PdbDbiV50 
PdbDbiV60 
PdbDbiV70 
PdbDbiV110 

Definition at line 50 of file RawConstants.h.

◆ PdbRaw_Features

Enumerator
PdbFeatureNone 
PdbFeatureContainsIdStream 
PdbFeatureMinimalDebugInfo 
PdbFeatureNoTypeMerging 

Definition at line 42 of file RawConstants.h.

◆ PdbRaw_FeatureSig

Enumerator
VC110 
VC140 
NoTypeMerge 
MinimalDebugInfo 

Definition at line 35 of file RawConstants.h.

◆ PdbRaw_ImplVer

Enumerator
PdbImplVC2 
PdbImplVC4 
PdbImplVC41 
PdbImplVC50 
PdbImplVC98 
PdbImplVC70Dep 
PdbImplVC70 
PdbImplVC80 
PdbImplVC110 
PdbImplVC140 

Definition at line 22 of file RawConstants.h.

◆ PdbRaw_TpiVer

Enumerator
PdbTpiV40 
PdbTpiV41 
PdbTpiV50 
PdbTpiV70 
PdbTpiV80 

Definition at line 58 of file RawConstants.h.

◆ raw_error_code

Enumerator
unspecified 
feature_unsupported 
invalid_format 
corrupt_file 
insufficient_buffer 
no_stream 
index_out_of_bounds 
invalid_block_address 
duplicate_entry 
no_entry 
not_writable 
stream_too_long 
invalid_tpi_hash 

Definition at line 19 of file RawError.h.

◆ SpecialStream

Enumerator
OldMSFDirectory 
StreamPDB 
StreamTPI 
StreamDBI 
StreamIPI 
kSpecialStreamCount 

Definition at line 71 of file RawConstants.h.

Function Documentation

◆ getOMFSegMapDescFlagNames()

ArrayRef< EnumEntry< uint16_t > > llvm::pdb::getOMFSegMapDescFlagNames ( )

Definition at line 34 of file EnumTables.cpp.

References llvm::makeArrayRef().

◆ hashBufferV8()

uint32_t llvm::pdb::hashBufferV8 ( ArrayRef< uint8_t >  Data)

◆ hashStringV1()

uint32_t llvm::pdb::hashStringV1 ( StringRef  Str)

◆ hashStringV2()

uint32_t llvm::pdb::hashStringV2 ( StringRef  Str)

Definition at line 57 of file Hash.cpp.

References llvm::StringRef::begin(), and llvm::StringRef::end().

Referenced by llvm::pdb::PDBStringTable::getIDForString().

◆ hashTypeRecord()

Expected< uint32_t > llvm::pdb::hashTypeRecord ( const llvm::codeview::CVType Type)

◆ LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE()

llvm::pdb::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ( )

◆ loadDataForEXE()

Error llvm::pdb::loadDataForEXE ( PDB_ReaderType  Type,
StringRef  Path,
std::unique_ptr< IPDBSession > &  Session 
)

◆ loadDataForPDB()

Error llvm::pdb::loadDataForPDB ( PDB_ReaderType  Type,
StringRef  Path,
std::unique_ptr< IPDBSession > &  Session 
)

◆ operator<<() [1/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_VariantType Value 
)

Definition at line 26 of file PDBExtras.cpp.

References Bool, CASE_OUTPUT_ENUM_CLASS_NAME, Double, Int16, Int32, Int64, Int8, Single, UInt16, UInt32, UInt64, and UInt8.

◆ operator<<() [2/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_CallingConv Conv 
)

Definition at line 46 of file PDBExtras.cpp.

References CASE_OUTPUT_ENUM_CLASS_STR, and Generic.

◆ operator<<() [3/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_DataKind Data 
)

◆ operator<<() [4/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const codeview::RegisterId Reg 
)

Definition at line 94 of file PDBExtras.cpp.

◆ operator<<() [5/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_LocType Loc 
)

Definition at line 105 of file PDBExtras.cpp.

References BitField, CASE_OUTPUT_ENUM_CLASS_STR, Enregistered, IlRel, MetaData, RegRel, Slot, ThisRel, and TLS.

◆ operator<<() [6/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const codeview::ThunkOrdinal Thunk 
)

Definition at line 123 of file PDBExtras.cpp.

References CASE_OUTPUT_ENUM_CLASS_NAME.

◆ operator<<() [7/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_Checksum Checksum 
)

Definition at line 137 of file PDBExtras.cpp.

References CASE_OUTPUT_ENUM_CLASS_NAME, and llvm::None.

◆ operator<<() [8/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_Lang Lang 
)

◆ operator<<() [9/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_SymType Tag 
)

◆ operator<<() [10/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_MemberAccess Access 
)

Definition at line 209 of file PDBExtras.cpp.

References CASE_OUTPUT_ENUM_CLASS_STR.

◆ operator<<() [11/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_UdtType Type 
)

Definition at line 219 of file PDBExtras.cpp.

References CASE_OUTPUT_ENUM_CLASS_STR, Struct, and Union.

◆ operator<<() [12/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_Machine Machine 
)

◆ operator<<() [13/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const Variant Value 
)

◆ operator<<() [14/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const VersionInfo Version 
)

◆ operator<<() [15/15]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const TagStats Stats 
)

Definition at line 308 of file PDBExtras.cpp.

Variable Documentation

◆ kInvalidStreamIndex

const uint16_t llvm::pdb::kInvalidStreamIndex = 0xFFFF

◆ MaxTpiHashBuckets

const uint32_t llvm::pdb::MaxTpiHashBuckets = 0x40000

Definition at line 312 of file RawTypes.h.

Referenced by llvm::pdb::TpiStream::reload().

◆ MinTpiHashBuckets

const uint32_t llvm::pdb::MinTpiHashBuckets = 0x1000

◆ PDBStringTableSignature

const uint32_t llvm::pdb::PDBStringTableSignature = 0xEFFEEFFE