LLDB  mainline
Classes | Public Types | Static Public Member Functions | Static Protected Member Functions | List of all members
DWARFMappedHash Class Reference

#include <HashedNameToDIE.h>

Classes

struct  Atom
 
struct  DIEInfo
 
class  Header
 
class  MemoryTable
 A class for reading and using a saved hash table from a block of data in memory. More...
 
class  Prologue
 

Public Types

enum  AtomType : uint16_t {
  eAtomTypeNULL = 0u, eAtomTypeDIEOffset = 1u, eAtomTypeCUOffset = 2u, eAtomTypeTag = 3u,
  eAtomTypeNameFlags = 4u, eAtomTypeTypeFlags = 5u, eAtomTypeQualNameHash = 6u
}
 
enum  TypeFlags { eTypeFlagClassIsImplementation = (1u << 1) }
 Bit definitions for the eAtomTypeTypeFlags flags. More...
 
typedef std::vector< DIEInfoDIEInfoArray
 
typedef std::vector< AtomAtomArray
 

Static Public Member Functions

static bool ExtractDIEArray (const DIEInfoArray &die_info_array, llvm::function_ref< bool(DIERef ref)> callback)
 

Static Protected Member Functions

static void ExtractDIEArray (const DIEInfoArray &die_info_array, const dw_tag_t tag, llvm::function_ref< bool(DIERef ref)> callback)
 
static void ExtractDIEArray (const DIEInfoArray &die_info_array, const dw_tag_t tag, const uint32_t qualified_name_hash, llvm::function_ref< bool(DIERef ref)> callback)
 
static void ExtractClassOrStructDIEArray (const DIEInfoArray &die_info_array, bool return_implementation_only_if_available, llvm::function_ref< bool(DIERef ref)> callback)
 
static void ExtractTypesFromDIEArray (const DIEInfoArray &die_info_array, uint32_t type_flag_mask, uint32_t type_flag_value, llvm::function_ref< bool(DIERef ref)> callback)
 
static const char * GetAtomTypeName (uint16_t atom)
 

Detailed Description

Definition at line 23 of file HashedNameToDIE.h.

Member Typedef Documentation

◆ AtomArray

typedef std::vector<Atom> DWARFMappedHash::AtomArray

Definition at line 78 of file HashedNameToDIE.h.

◆ DIEInfoArray

typedef std::vector<DIEInfo> DWARFMappedHash::DIEInfoArray

Definition at line 77 of file HashedNameToDIE.h.

Member Enumeration Documentation

◆ AtomType

Enumerator
eAtomTypeNULL 
eAtomTypeDIEOffset 

DIE offset, check form for encoding.

eAtomTypeCUOffset 

DIE offset of the compiler unit header that contains the item in question.

eAtomTypeTag 

DW_TAG_xxx value, should be encoded as DW_FORM_data1 (if no tags exceed 255) or DW_FORM_data2.

eAtomTypeNameFlags 
eAtomTypeTypeFlags 
eAtomTypeQualNameHash 

A 32 bit hash of the full qualified name (since all hash entries are basename only) For example a type like "std::vector<int>::iterator" would have a name of "iterator" and a 32 bit hash for "std::vector<int>::iterator" to allow us to not have to pull in debug info for a type when we know the fully qualified name.

Definition at line 25 of file HashedNameToDIE.h.

◆ TypeFlags

Bit definitions for the eAtomTypeTypeFlags flags.

Enumerator
eTypeFlagClassIsImplementation 

Always set for C++, only set for ObjC if this is the @implementation for class.

Definition at line 48 of file HashedNameToDIE.h.

Member Function Documentation

◆ ExtractClassOrStructDIEArray()

void DWARFMappedHash::ExtractClassOrStructDIEArray ( const DIEInfoArray die_info_array,
bool  return_implementation_only_if_available,
llvm::function_ref< bool(DIERef ref)>  callback 
)
staticprotected

◆ ExtractDIEArray() [1/3]

void DWARFMappedHash::ExtractDIEArray ( const DIEInfoArray die_info_array,
const dw_tag_t  tag,
const uint32_t  qualified_name_hash,
llvm::function_ref< bool(DIERef ref)>  callback 
)
staticprotected

Definition at line 47 of file HashedNameToDIE.cpp.

◆ ExtractDIEArray() [2/3]

void DWARFMappedHash::ExtractDIEArray ( const DIEInfoArray die_info_array,
const dw_tag_t  tag,
llvm::function_ref< bool(DIERef ref)>  callback 
)
staticprotected

Definition at line 24 of file HashedNameToDIE.cpp.

◆ ExtractDIEArray() [3/3]

bool DWARFMappedHash::ExtractDIEArray ( const DIEInfoArray die_info_array,
llvm::function_ref< bool(DIERef ref)>  callback 
)
static

◆ ExtractTypesFromDIEArray()

void DWARFMappedHash::ExtractTypesFromDIEArray ( const DIEInfoArray die_info_array,
uint32_t  type_flag_mask,
uint32_t  type_flag_value,
llvm::function_ref< bool(DIERef ref)>  callback 
)
staticprotected

◆ GetAtomTypeName()

const char * DWARFMappedHash::GetAtomTypeName ( uint16_t  atom)
staticprotected

Definition at line 110 of file HashedNameToDIE.cpp.


The documentation for this class was generated from the following files: