LLVM  8.0.1
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  DIAEnumFrameData
 
class  DIAEnumInjectedSources
 
class  DIAEnumLineNumbers
 
class  DIAEnumSectionContribs
 
class  DIAEnumSourceFiles
 
class  DIAEnumSymbols
 
class  DIAEnumTables
 
class  DIAError
 Base class for errors originating in DIA SDK, e.g. COM calls. More...
 
class  DIAFrameData
 
class  DIAInjectedSource
 
class  DIALineNumber
 
class  DIARawSymbol
 
class  DIASectionContrib
 
class  DIASession
 
class  DIASourceFile
 
class  DIATable
 
struct  FileInfoSubstreamHeader
 The header preceeding the File Info Substream of the DBI stream. 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  IPDBFrameData
 IPDBFrameData defines an interface used to represent a frame data of some code block. More...
 
class  IPDBInjectedSource
 IPDBInjectedSource defines an interface used to represent source files which were injected directly into the PDB file during the compilation process. More...
 
class  IPDBLineNumber
 
class  IPDBRawSymbol
 IPDBRawSymbol defines an interface used to represent an arbitrary symbol. More...
 
class  IPDBSectionContrib
 IPDBSectionContrib defines an interface used to represent section contributions whose information are stored in the PDB. 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
 
struct  NamedStreamMapTraits
 
class  NativeCompilandSymbol
 
class  NativeEnumGlobals
 
class  NativeEnumModules
 
class  NativeEnumTypes
 
class  NativeExeSymbol
 
class  NativeRawSymbol
 
class  NativeSession
 
class  NativeSymbolEnumerator
 
class  NativeTypeArray
 
class  NativeTypeBuiltin
 
class  NativeTypeEnum
 
class  NativeTypeFunctionSig
 
class  NativeTypePointer
 
class  NativeTypeTypedef
 
class  NativeTypeUDT
 
class  NativeTypeVTShape
 
class  NullEnumerator
 
class  PDBContext
 PDBContext This data structure is the top level entity that deals with PDB debug information parsing. More...
 
class  PDBError
 Base class for errors originating when parsing raw PDB files. More...
 
class  PDBFile
 
class  PDBFileBuilder
 
struct  PdbHashTraits
 
struct  PdbHashTraits< uint32_t >
 
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  SectionOffset
 
struct  SrcHeaderBlockEntry
 A single file record entry within the /src/headerblock stream. More...
 
struct  SrcHeaderBlockHeader
 The header preceding the /src/headerblock stream. More...
 
struct  StringTableHashTraits
 
class  SymbolCache
 
class  SymbolStream
 
struct  TagRecordHash
 
class  TpiStream
 
class  TpiStreamBuilder
 
struct  TpiStreamHeader
 
class  UDTLayoutBase
 
struct  Variant
 
class  VBPtrLayoutItem
 
struct  VersionInfo
 
class  VTableLayoutItem
 

Typedefs

using TagStats = std::unordered_map< PDB_SymType, int >
 
typedef uint32_t SymIndexId
 
using IPDBEnumSymbols = IPDBEnumChildren< PDBSymbol >
 
using IPDBEnumSourceFiles = IPDBEnumChildren< IPDBSourceFile >
 
using IPDBEnumDataStreams = IPDBEnumChildren< IPDBDataStream >
 
using IPDBEnumLineNumbers = IPDBEnumChildren< IPDBLineNumber >
 
using IPDBEnumTables = IPDBEnumChildren< IPDBTable >
 
using IPDBEnumInjectedSources = IPDBEnumChildren< IPDBInjectedSource >
 
using IPDBEnumSectionContribs = IPDBEnumChildren< IPDBSectionContrib >
 
using IPDBEnumFrameData = IPDBEnumChildren< IPDBFrameData >
 
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  pdb_error_code {
  pdb_error_code::invalid_utf8_path = 1, pdb_error_code::dia_sdk_not_present, pdb_error_code::dia_failed_loading, pdb_error_code::signature_out_of_date,
  pdb_error_code::external_cmdline_ref, pdb_error_code::unspecified
}
 
enum  PdbSymbolIdField : uint32_t {
  PdbSymbolIdField::None = 0, PdbSymbolIdField::SymIndexId = 1 << 0, PdbSymbolIdField::LexicalParent = 1 << 1, PdbSymbolIdField::ClassParent = 1 << 2,
  PdbSymbolIdField::Type = 1 << 3, PdbSymbolIdField::UnmodifiedType = 1 << 4, PdbSymbolIdField::All = 0xFFFFFFFF
}
 
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_SrcHeaderBlockVer : uint32_t { PdbRaw_SrcHeaderBlockVer::SrcVerOne = 19980827 }
 
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, NS_CaseInFileNameExt = NS_CaseInsensitive | NS_FileNameExtMatch, NS_CaseRegex = NS_Regex | NS_CaseSensitive,
  NS_CaseInRex = NS_Regex | NS_CaseInsensitive
}
 Defines flags used for enumerating child symbols. More...
 
enum  PDB_Checksum { PDB_Checksum::None = 0, PDB_Checksum::MD5 = 1, PDB_Checksum::SHA1 = 2, PDB_Checksum::SHA256 = 3 }
 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_SourceCompression { PDB_SourceCompression::None, PDB_SourceCompression::RunLengthEncoded, PDB_SourceCompression::Huffman, PDB_SourceCompression::LZ }
 
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::CallSite,
  PDB_SymType::InlineSite, PDB_SymType::BaseInterface, PDB_SymType::VectorType, PDB_SymType::MatrixType,
  PDB_SymType::HLSLType, PDB_SymType::Caller, PDB_SymType::Callee, PDB_SymType::Export,
  PDB_SymType::HeapAllocationSite, PDB_SymType::CoffGroup, PDB_SymType::Inlinee, 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::RegRelAliasIndir,
  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 : uint16_t {
  PDB_StackFrameType::FPO, PDB_StackFrameType::KernelTrap, PDB_StackFrameType::KernelTSS, PDB_StackFrameType::EBP,
  PDB_StackFrameType::FrameData, Unknown = 0xffff
}
 These values correspond to the StackFrameTypeEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bc5207xw.aspx. More...
 
enum  PDB_MemoryType : uint16_t {
  PDB_MemoryType::Code, PDB_MemoryType::Data, PDB_MemoryType::Stack, PDB_MemoryType::HeapCode,
  PDB_MemoryType::Any = 0xffff
}
 These values correspond to the MemoryTypeEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/ms165609.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, PDB_BuiltinType::Char16 = 32, PDB_BuiltinType::Char32 = 33
}
 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,
  Unknown = 0xffff, Int8, Int16, Int32,
  Int64, Single, Double, UInt8,
  UInt16, UInt32, UInt64, Bool,
  Bool = 10, String
}
 

Functions

const std::error_categoryDIAErrCategory ()
 
std::error_code make_error_code (dia_error_code E)
 
const std::error_categoryPDBErrCategory ()
 
std::error_code make_error_code (pdb_error_code E)
 
void dumpSymbolIdField (raw_ostream &OS, StringRef Name, SymIndexId Value, int Indent, const IPDBSession &Session, PdbSymbolIdField FieldId, PdbSymbolIdField ShowFlags, PdbSymbolIdField RecurseFlags)
 
 LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ()
 
ArrayRef< EnumEntry< uint16_t > > getOMFSegMapDescFlagNames ()
 
uint32_t hashStringV1 (StringRef Str)
 
uint32_t hashStringV2 (StringRef Str)
 
uint32_t hashBufferV8 (ArrayRef< uint8_t > Data)
 
Error readSparseBitVector (BinaryStreamReader &Stream, SparseBitVector<> &V)
 
Error writeSparseBitVector (BinaryStreamWriter &Writer, SparseBitVector<> &Vec)
 
const std::error_categoryRawErrCategory ()
 
std::error_code make_error_code (raw_error_code E)
 
Expected< uint32_thashTypeRecord (const llvm::codeview::CVType &Type)
 
Expected< TagRecordHashhashTagRecord (const codeview::CVType &Type)
 Given a CVType referring to a class, structure, union, or enum, compute the hash of its forward decl and full decl. More...
 
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_BuiltinType &Type)
 
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 PDB_SourceCompression &Compression)
 
raw_ostreamoperator<< (raw_ostream &OS, const Variant &Value)
 
raw_ostreamoperator<< (raw_ostream &OS, const VersionInfo &Version)
 
raw_ostreamoperator<< (raw_ostream &OS, const TagStats &Stats)
 
template<typename T >
void dumpSymbolField (raw_ostream &OS, StringRef Name, T Value, int Indent)
 

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 70 of file PDBTypes.h.

◆ IPDBEnumFrameData

Definition at line 75 of file PDBTypes.h.

◆ IPDBEnumInjectedSources

Definition at line 73 of file PDBTypes.h.

◆ IPDBEnumLineNumbers

Definition at line 71 of file PDBTypes.h.

◆ IPDBEnumSectionContribs

Definition at line 74 of file PDBTypes.h.

◆ IPDBEnumSourceFiles

Definition at line 69 of file PDBTypes.h.

◆ IPDBEnumSymbols

Definition at line 68 of file PDBTypes.h.

◆ IPDBEnumTables

Definition at line 72 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 160 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 122 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 164 of file PDBTypes.h.

◆ SymIndexId

Definition at line 26 of file PDBTypes.h.

◆ TagStats

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

Definition at line 25 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 87 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.

◆ OMFSegDescFlags

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

Definition at line 102 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 
Char16 
Char32 

Definition at line 275 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 
SHA256 

Definition at line 118 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 168 of file PDBTypes.h.

◆ pdb_error_code

Enumerator
invalid_utf8_path 
dia_sdk_not_present 
dia_failed_loading 
signature_out_of_date 
external_cmdline_ref 
unspecified 

Definition at line 19 of file GenericError.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 
RegRelAliasIndir 
Max 

Definition at line 232 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 124 of file PDBTypes.h.

◆ PDB_MemberAccess

Enumerator
Private 
Protected 
Public 

Definition at line 324 of file PDBTypes.h.

◆ PDB_MemoryType

enum llvm::pdb::PDB_MemoryType : uint16_t
strong

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

Enumerator
Code 
Data 
Stack 
HeapCode 
Any 

Definition at line 265 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 
NS_CaseInFileNameExt 
NS_CaseRegex 
NS_CaseInRex 

Definition at line 101 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 79 of file PDBTypes.h.

◆ PDB_SourceCompression

Enumerator
None 
RunLengthEncoded 
Huffman 
LZ 

Definition at line 149 of file PDBTypes.h.

◆ PDB_StackFrameType

enum llvm::pdb::PDB_StackFrameType : uint16_t
strong

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 
Unknown 

Definition at line 254 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 
CallSite 
InlineSite 
BaseInterface 
VectorType 
MatrixType 
HLSLType 
Caller 
Callee 
Export 
HeapAllocationSite 
CoffGroup 
Inlinee 
Max 

Definition at line 183 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 85 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 250 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 301 of file PDBTypes.h.

◆ PDB_VariantType

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

Definition at line 333 of file PDBTypes.h.

◆ PdbRaw_DbiSecContribVer

Enumerator
DbiSecContribVer60 
DbiSecContribV2 

Definition at line 68 of file RawConstants.h.

◆ PdbRaw_DbiVer

Enumerator
PdbDbiVC41 
PdbDbiV50 
PdbDbiV60 
PdbDbiV70 
PdbDbiV110 

Definition at line 52 of file RawConstants.h.

◆ PdbRaw_Features

Enumerator
PdbFeatureNone 
PdbFeatureContainsIdStream 
PdbFeatureMinimalDebugInfo 
PdbFeatureNoTypeMerging 

Definition at line 44 of file RawConstants.h.

◆ PdbRaw_FeatureSig

Enumerator
VC110 
VC140 
NoTypeMerge 
MinimalDebugInfo 

Definition at line 37 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_SrcHeaderBlockVer

Enumerator
SrcVerOne 

Definition at line 35 of file RawConstants.h.

◆ PdbRaw_TpiVer

Enumerator
PdbTpiV40 
PdbTpiV41 
PdbTpiV50 
PdbTpiV70 
PdbTpiV80 

Definition at line 60 of file RawConstants.h.

◆ PdbSymbolIdField

Enumerator
None 
SymIndexId 
LexicalParent 
ClassParent 
Type 
UnmodifiedType 
All 

Definition at line 29 of file IPDBRawSymbol.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 73 of file RawConstants.h.

Function Documentation

◆ DIAErrCategory()

const std::error_category & llvm::pdb::DIAErrCategory ( )

Definition at line 35 of file DIAError.cpp.

References DIACategory, and llvm::pdb::DIAError::ID.

Referenced by make_error_code().

◆ dumpSymbolField()

template<typename T >
void llvm::pdb::dumpSymbolField ( raw_ostream OS,
StringRef  Name,
T  Value,
int  Indent 
)

◆ dumpSymbolIdField()

void llvm::pdb::dumpSymbolIdField ( raw_ostream OS,
StringRef  Name,
SymIndexId  Value,
int  Indent,
const IPDBSession Session,
PdbSymbolIdField  FieldId,
PdbSymbolIdField  ShowFlags,
PdbSymbolIdField  RecurseFlags 
)

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

◆ hashTagRecord()

Expected< TagRecordHash > llvm::pdb::hashTagRecord ( const codeview::CVType Type)

Given a CVType referring to a class, structure, union, or enum, compute the hash of its forward decl and full decl.

Definition at line 89 of file TpiHashing.cpp.

References assert(), llvm::inconvertibleErrorCode(), and llvm::codeview::CVRecord< Kind >::kind().

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

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

◆ make_error_code() [1/3]

std::error_code llvm::pdb::make_error_code ( dia_error_code  E)
inline

Definition at line 38 of file DIAError.h.

References DIAErrCategory().

◆ make_error_code() [2/3]

std::error_code llvm::pdb::make_error_code ( pdb_error_code  E)
inline

Definition at line 39 of file GenericError.h.

References PDBErrCategory().

◆ make_error_code() [3/3]

std::error_code llvm::pdb::make_error_code ( raw_error_code  E)
inline

Definition at line 46 of file RawError.h.

References RawErrCategory().

◆ operator<<() [1/17]

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

Definition at line 25 of file PDBExtras.cpp.

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

◆ operator<<() [2/17]

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

Definition at line 72 of file PDBExtras.cpp.

References CASE_OUTPUT_ENUM_CLASS_STR, and Generic.

◆ operator<<() [3/17]

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

◆ operator<<() [4/17]

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

◆ operator<<() [5/17]

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

Definition at line 120 of file PDBExtras.cpp.

References Reg.

◆ operator<<() [6/17]

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

◆ operator<<() [7/17]

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

Definition at line 151 of file PDBExtras.cpp.

References CASE_OUTPUT_ENUM_CLASS_NAME.

◆ operator<<() [8/17]

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

Definition at line 165 of file PDBExtras.cpp.

References CASE_OUTPUT_ENUM_CLASS_NAME, and llvm::None.

◆ operator<<() [9/17]

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

◆ operator<<() [10/17]

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

◆ operator<<() [11/17]

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

Definition at line 250 of file PDBExtras.cpp.

References CASE_OUTPUT_ENUM_CLASS_STR.

◆ operator<<() [12/17]

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

Definition at line 260 of file PDBExtras.cpp.

References CASE_OUTPUT_ENUM_CLASS_STR, Struct, and Union.

◆ operator<<() [13/17]

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

◆ operator<<() [14/17]

raw_ostream & llvm::pdb::operator<< ( raw_ostream OS,
const PDB_SourceCompression Compression 
)

◆ operator<<() [15/17]

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

◆ operator<<() [16/17]

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

◆ operator<<() [17/17]

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

Definition at line 361 of file PDBExtras.cpp.

◆ PDBErrCategory()

const std::error_category & llvm::pdb::PDBErrCategory ( )

Definition at line 45 of file GenericError.cpp.

References llvm::pdb::PDBError::ID, and PDBCategory.

Referenced by make_error_code().

◆ RawErrCategory()

const std::error_category & llvm::pdb::RawErrCategory ( )

Definition at line 49 of file RawError.cpp.

References llvm::pdb::RawError::ID, and RawCategory.

Referenced by make_error_code().

◆ readSparseBitVector()

Error llvm::pdb::readSparseBitVector ( BinaryStreamReader Stream,
SparseBitVector<> &  V 
)

◆ writeSparseBitVector()

Error llvm::pdb::writeSparseBitVector ( BinaryStreamWriter Writer,
SparseBitVector<> &  Vec 
)

Variable Documentation

◆ kInvalidStreamIndex

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

◆ MaxTpiHashBuckets

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

Definition at line 302 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