Go to the documentation of this file.
9 #ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_HASHEDNAMETODIE_H
10 #define LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_HASHEDNAMETODIE_H
133 HashData &hash_data)
const override;
144 llvm::function_ref<
bool(
DIERef ref)> callback);
147 llvm::function_ref<
bool(
DIERef ref)> callback);
150 llvm::StringRef name,
const dw_tag_t tag,
152 llvm::function_ref<
bool(
DIERef ref)> callback);
156 llvm::function_ref<
bool(
DIERef ref)> callback,
157 bool must_be_implementation);
168 Pair &pair)
const override;
176 llvm::function_ref<
bool(
DIERef ref)> callback);
181 llvm::function_ref<
bool(
DIERef ref)> callback);
186 llvm::function_ref<
bool(
DIERef ref)> callback);
190 bool return_implementation_only_if_available,
191 llvm::function_ref<
bool(
DIERef ref)> callback);
196 llvm::function_ref<
bool(
DIERef ref)> callback);
201 #endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_HASHEDNAMETODIE_H
Identifies a DWARF debug info entry within a given Module.
Result AppendHashDataForRegularExpression(const lldb_private::RegularExpression ®ex, lldb::offset_t *hash_data_offset_ptr, Pair &pair) const
@ eAtomTypeCUOffset
DIE offset of the compiler unit header that contains the item in question.
uint32_t qualified_name_hash
A 32 bit hash of the fully qualified name.
lldb_private::DWARFDataExtractor m_string_table
size_t GetMinimumHashDataByteSize() const
llvm::dwarf::Tag dw_tag_t
bool hash_data_has_fixed_byte_size
#define DW_INVALID_OFFSET
void FindByNameAndTag(llvm::StringRef name, const dw_tag_t tag, llvm::function_ref< bool(DIERef ref)> callback)
bool ContainsAtom(AtomType atom_type) const
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)
void FindCompleteObjCClassByName(llvm::StringRef name, llvm::function_ref< bool(DIERef ref)> callback, bool must_be_implementation)
bool HashDataHasFixedByteSize() const
void AppendAllDIEsInRange(const uint32_t die_offset_start, const uint32_t die_offset_end, DIEInfoArray &die_info_array) const
uint32_t type_flags
Any flags for this DIEInfo.
Result GetHashDataForName(llvm::StringRef name, lldb::offset_t *hash_data_offset_ptr, Pair &pair) const override
@ eTypeFlagClassIsImplementation
Always set for C++, only set for ObjC if this is the @implementation for class.
static const char * GetAtomTypeName(uint16_t atom)
const char * GetStringForKeyType(KeyType key) const override
lldb_private::DWARFDataExtractor m_data
size_t GetByteSize() const
static bool ExtractDIEArray(const DIEInfoArray &die_info_array, 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)
string(SUBSTRING ${p} 10 -1 pStripped) if($
std::vector< Atom > AtomArray
A class for reading and using a saved hash table from a block of data in memory.
std::vector< DIEInfo > DIEInfoArray
Prologue(dw_offset_t _die_base_offset=0)
size_t min_hash_data_byte_size
@ eAtomTypeDIEOffset
DIE offset, check form for encoding.
@ eAtomTypeTag
DW_TAG_xxx value, should be encoded as DW_FORM_data1 (if no tags exceed 255) or DW_FORM_data2.
TypeFlags
Bit definitions for the eAtomTypeTypeFlags flags.
void AppendAtom(AtomType type, dw_form_t form)
bool FindByName(llvm::StringRef name, llvm::function_ref< bool(DIERef ref)> callback)
void AppendAllDIEsThatMatchingRegex(const lldb_private::RegularExpression ®ex, DIEInfoArray &die_info_array) const
MemoryTable(lldb_private::DWARFDataExtractor &table_data, const lldb_private::DWARFDataExtractor &string_table, const char *name)
@ eAtomTypeQualNameHash
A 32 bit hash of the full qualified name (since all hash entries are basename only) For example a typ...
bool ReadHashData(uint32_t hash_data_offset, HashData &hash_data) const override
void FindByNameAndTagAndQualifiedNameHash(llvm::StringRef name, const dw_tag_t tag, const uint32_t qualified_name_hash, llvm::function_ref< bool(DIERef ref)> callback)
lldb::offset_t Read(const lldb_private::DataExtractor &data, lldb::offset_t offset)
dw_offset_t die_base_offset
DIE offset base so die offsets in hash_data can be CU relative.