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);
Identifies a DWARF debug info entry within a given Module.
A class for reading and using a saved hash table from a block of data in memory.
void FindCompleteObjCClassByName(llvm::StringRef name, llvm::function_ref< bool(DIERef ref)> callback, bool must_be_implementation)
Result AppendHashDataForRegularExpression(const lldb_private::RegularExpression ®ex, lldb::offset_t *hash_data_offset_ptr, Pair &pair) const
lldb_private::DWARFDataExtractor m_string_table
Result GetHashDataForName(llvm::StringRef name, lldb::offset_t *hash_data_offset_ptr, Pair &pair) 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)
bool ReadHashData(uint32_t hash_data_offset, HashData &hash_data) const override
void AppendAllDIEsInRange(const uint32_t die_offset_start, const uint32_t die_offset_end, DIEInfoArray &die_info_array) const
void FindByNameAndTag(llvm::StringRef name, const dw_tag_t tag, llvm::function_ref< bool(DIERef ref)> callback)
bool FindByName(llvm::StringRef name, llvm::function_ref< bool(DIERef ref)> callback)
const char * GetStringForKeyType(KeyType key) const override
void AppendAllDIEsThatMatchingRegex(const lldb_private::RegularExpression ®ex, DIEInfoArray &die_info_array) const
lldb_private::DWARFDataExtractor m_data
lldb::offset_t Read(const lldb_private::DataExtractor &data, lldb::offset_t offset)
size_t min_hash_data_byte_size
size_t GetMinimumHashDataByteSize() const
bool hash_data_has_fixed_byte_size
dw_offset_t die_base_offset
DIE offset base so die offsets in hash_data can be CU relative.
bool HashDataHasFixedByteSize() const
void AppendAtom(AtomType type, dw_form_t form)
size_t GetByteSize() const
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)
static const char * GetAtomTypeName(uint16_t atom)
static void ExtractClassOrStructDIEArray(const DIEInfoArray &die_info_array, bool return_implementation_only_if_available, llvm::function_ref< bool(DIERef ref)> callback)
TypeFlags
Bit definitions for the eAtomTypeTypeFlags flags.
@ eTypeFlagClassIsImplementation
Always set for C++, only set for ObjC if this is the @implementation for class.
std::vector< Atom > AtomArray
@ eAtomTypeQualNameHash
A 32 bit hash of the full qualified name (since all hash entries are basename only) For example a typ...
@ eAtomTypeCUOffset
DIE offset of the compiler unit header that contains the item in question.
@ 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.
std::vector< DIEInfo > DIEInfoArray
static bool ExtractDIEArray(const DIEInfoArray &die_info_array, llvm::function_ref< bool(DIERef ref)> callback)
#define DW_INVALID_OFFSET
llvm::dwarf::Tag dw_tag_t
llvm::dwarf::Form dw_form_t
uint32_t type_flags
Any flags for this DIEInfo.
uint32_t qualified_name_hash
A 32 bit hash of the fully qualified name.