26 llvm::function_ref<
bool(
DWARFDIE die)> callback) {
35 if (!(name_type_mask & eFunctionNameTypeFull)) {
38 name_to_match_against =
ConstString(mangled_die_name);
43 name_to_match_against = demangled_die_name;
54 name_type_mask & ~(eFunctionNameTypeMethod | eFunctionNameTypeSelector);
55 if (!looking_for_nonmethods && parent_decl_ctx.
IsValid())
64 if (name_type_mask & eFunctionNameTypeFull && die.
GetMangledName() == name)
69 if (name_type_mask & eFunctionNameTypeSelector &&
73 bool looking_for_methods = name_type_mask & lldb::eFunctionNameTypeMethod;
74 bool looking_for_functions = name_type_mask & lldb::eFunctionNameTypeBase;
75 if (looking_for_methods || looking_for_functions) {
79 if ((looking_for_methods && looking_for_functions) ||
80 looking_for_methods == die.
IsMethod())
92 index.m_module.GetSymbolFile()->GetBackingSymbolFile())),
93 m_callback(callback), m_name(name) {}
97 return m_callback(die);
98 m_index.ReportInvalidDIERef(ref, m_name);
104 "the DWARF debug information has been modified (accelerator table had "
105 "bad die {0:x16} for '{1}')\n",
Identifies a DWARF debug info entry within a given Module.
dw_offset_t die_offset() const
SymbolFileDWARF * GetDWARF() const
void GetName(lldb_private::Stream &s) const
const char * GetMangledName() const
DWARFDIE GetDIE(dw_offset_t die_offset) const
static bool DIEInDeclContext(const lldb_private::CompilerDeclContext &parent_decl_ctx, const DWARFDIE &die, bool only_root_namespaces=false)
lldb_private::ConstString ConstructFunctionDemangledName(const DWARFDIE &die)
Represents a generic declaration context in a program.
A uniqued constant string class.
llvm::StringRef GetStringRef() const
Get the string value as a llvm::StringRef.
bool operator()(DIERef ref) const
DIERefCallbackImpl(const DWARFIndex &index, llvm::function_ref< bool(DWARFDIE die)> callback, llvm::StringRef name)
bool ProcessFunctionDIE(const Module::LookupInfo &lookup_info, DIERef ref, SymbolFileDWARF &dwarf, const CompilerDeclContext &parent_decl_ctx, llvm::function_ref< bool(DWARFDIE die)> callback)
Helper function implementing common logic for processing function dies.
void ReportInvalidDIERef(DIERef ref, llvm::StringRef name) const
A class that encapsulates name lookup information.
lldb::FunctionNameType GetNameTypeMask() const
lldb::LanguageType GetLanguageType() const
ConstString GetLookupName() const
bool NameMatchesLookupInfo(ConstString function_name, lldb::LanguageType language_type=lldb::eLanguageTypeUnknown) const
void ReportErrorIfModifyDetected(const char *format, Args &&...args)
static bool IsPossibleObjCMethodName(const char *name)
A class that represents a running process on the host machine.