LLDB mainline
|
"lldb/Breakpoint/BreakpointResolverName.h" This class sets breakpoints on a given function name, either by exact match or by regular expression. More...
#include <BreakpointResolverName.h>
Public Member Functions | |
BreakpointResolverName (const lldb::BreakpointSP &bkpt, const char *name, lldb::FunctionNameType name_type_mask, lldb::LanguageType language, Breakpoint::MatchType type, lldb::addr_t offset, bool offset_is_insn_count, bool skip_prologue) | |
BreakpointResolverName (const lldb::BreakpointSP &bkpt, const char *names[], size_t num_names, lldb::FunctionNameType name_type_mask, lldb::LanguageType language, lldb::addr_t offset, bool skip_prologue) | |
BreakpointResolverName (const lldb::BreakpointSP &bkpt, const std::vector< std::string > &names, lldb::FunctionNameType name_type_mask, lldb::LanguageType language, lldb::addr_t offset, bool skip_prologue) | |
BreakpointResolverName (const lldb::BreakpointSP &bkpt, RegularExpression func_regex, lldb::LanguageType language, lldb::addr_t offset, bool skip_prologue) | |
StructuredData::ObjectSP | SerializeToStructuredData () override |
~BreakpointResolverName () override=default | |
Searcher::CallbackReturn | SearchCallback (SearchFilter &filter, SymbolContext &context, Address *addr) override |
lldb::SearchDepth | GetDepth () override |
void | GetDescription (Stream *s) override |
Prints a canonical description for the breakpoint to the stream s. | |
void | Dump (Stream *s) const override |
Standard "Dump" method. At present it does nothing. | |
lldb::BreakpointResolverSP | CopyForBreakpoint (lldb::BreakpointSP &breakpoint) override |
Public Member Functions inherited from lldb_private::BreakpointResolver | |
BreakpointResolver (const lldb::BreakpointSP &bkpt, unsigned char resolverType, lldb::addr_t offset=0, bool offset_is_insn_count=false) | |
The breakpoint resolver need to have a breakpoint for "ResolveBreakpoint to make sense. | |
~BreakpointResolver () override | |
The Destructor is virtual, all significant breakpoint resolvers derive from this class. | |
void | SetBreakpoint (const lldb::BreakpointSP &bkpt) |
This sets the breakpoint for this resolver. | |
lldb::BreakpointSP | GetBreakpoint () const |
This gets the breakpoint for this resolver. | |
void | SetOffset (lldb::addr_t offset) |
This updates the offset for this breakpoint. | |
lldb::addr_t | GetOffset () const |
lldb::addr_t | GetOffsetIsInsnCount () const |
virtual void | ResolveBreakpoint (SearchFilter &filter) |
In response to this method the resolver scans all the modules in the breakpoint's target, and adds any new locations it finds. | |
virtual void | ResolveBreakpointInModules (SearchFilter &filter, ModuleList &modules) |
In response to this method the resolver scans the modules in the module list modules, and adds any new locations it finds. | |
StructuredData::DictionarySP | WrapOptionsDict (StructuredData::DictionarySP options_dict_sp) |
unsigned | getResolverID () const |
getResolverID - Return an ID for the concrete type of this object. | |
enum ResolverTy | GetResolverTy () |
const char * | GetResolverName () |
Public Member Functions inherited from lldb_private::Searcher | |
Searcher () | |
virtual | ~Searcher () |
Static Public Member Functions | |
static lldb::BreakpointResolverSP | CreateFromStructuredData (const StructuredData::Dictionary &data_dict, Status &error) |
static bool | classof (const BreakpointResolverName *) |
Methods for support type inquiry through isa, cast, and dyn_cast: | |
static bool | classof (const BreakpointResolver *V) |
Static Public Member Functions inherited from lldb_private::BreakpointResolver | |
static lldb::BreakpointResolverSP | CreateFromStructuredData (const StructuredData::Dictionary &resolver_dict, Status &error) |
This section handles serializing and deserializing from StructuredData objects. | |
static const char * | GetSerializationKey () |
static const char * | GetSerializationSubclassKey () |
static const char * | GetSerializationSubclassOptionsKey () |
static const char * | ResolverTyToName (enum ResolverTy) |
static ResolverTy | NameToResolverTy (llvm::StringRef name) |
static const char * | GetKey (OptionNames enum_value) |
Protected Member Functions | |
BreakpointResolverName (const BreakpointResolverName &rhs) | |
void | AddNameLookup (ConstString name, lldb::FunctionNameType name_type_mask) |
Protected Member Functions inherited from lldb_private::BreakpointResolver | |
virtual void | NotifyBreakpointSet () |
void | SetSCMatchesByLine (SearchFilter &filter, SymbolContextList &sc_list, bool skip_prologue, llvm::StringRef log_ident, uint32_t line=0, std::optional< uint16_t > column=std::nullopt) |
Takes a symbol context list of matches which supposedly represent the same file and line number in a CU, and find the nearest actual line number that matches, and then filter down the matching addresses to unique entries, and skip the prologue if asked to do so, and then set breakpoint locations in this breakpoint for all the resultant addresses. | |
void | SetSCMatchesByLine (SearchFilter &, SymbolContextList &, bool, const char *)=delete |
lldb::BreakpointLocationSP | AddLocation (Address loc_addr, bool *new_location=nullptr) |
Protected Attributes | |
std::vector< Module::LookupInfo > | m_lookups |
ConstString | m_class_name |
RegularExpression | m_regex |
Breakpoint::MatchType | m_match_type |
lldb::LanguageType | m_language |
bool | m_skip_prologue |
"lldb/Breakpoint/BreakpointResolverName.h" This class sets breakpoints on a given function name, either by exact match or by regular expression.
Definition at line 24 of file BreakpointResolverName.h.
lldb_private::BreakpointResolverName::BreakpointResolverName | ( | const lldb::BreakpointSP & | bkpt, |
const char * | name, | ||
lldb::FunctionNameType | name_type_mask, | ||
lldb::LanguageType | language, | ||
Breakpoint::MatchType | type, | ||
lldb::addr_t | offset, | ||
bool | offset_is_insn_count, | ||
bool | skip_prologue ) |
Referenced by BreakpointResolverName(), classof(), and CopyForBreakpoint().
lldb_private::BreakpointResolverName::BreakpointResolverName | ( | const lldb::BreakpointSP & | bkpt, |
const char * | names[], | ||
size_t | num_names, | ||
lldb::FunctionNameType | name_type_mask, | ||
lldb::LanguageType | language, | ||
lldb::addr_t | offset, | ||
bool | skip_prologue ) |
lldb_private::BreakpointResolverName::BreakpointResolverName | ( | const lldb::BreakpointSP & | bkpt, |
const std::vector< std::string > & | names, | ||
lldb::FunctionNameType | name_type_mask, | ||
lldb::LanguageType | language, | ||
lldb::addr_t | offset, | ||
bool | skip_prologue ) |
References error().
BreakpointResolverName::BreakpointResolverName | ( | const lldb::BreakpointSP & | bkpt, |
RegularExpression | func_regex, | ||
lldb::LanguageType | language, | ||
lldb::addr_t | offset, | ||
bool | skip_prologue ) |
Definition at line 73 of file BreakpointResolverName.cpp.
References lldb_private::BreakpointResolver::Breakpoint, lldb_private::BreakpointResolver::BreakpointResolver(), m_class_name, m_language, m_match_type, m_regex, m_skip_prologue, and lldb_private::BreakpointResolver::NameResolver.
|
overridedefault |
|
protected |
Definition at line 83 of file BreakpointResolverName.cpp.
References lldb_private::BreakpointResolver::BreakpointResolver(), BreakpointResolverName(), lldb_private::BreakpointResolver::GetBreakpoint(), lldb_private::BreakpointResolver::GetOffset(), lldb_private::BreakpointResolver::GetOffsetIsInsnCount(), m_class_name, m_language, m_lookups, m_match_type, m_regex, m_skip_prologue, and lldb_private::BreakpointResolver::NameResolver.
|
protected |
Definition at line 219 of file BreakpointResolverName.cpp.
References lldb_private::Language::FindPlugin(), lldb_private::Language::ForEach(), m_language, m_lookups, and lldb_private::Module::LookupInfo::SetLookupName().
|
inlinestatic |
Definition at line 73 of file BreakpointResolverName.h.
References lldb_private::BreakpointResolver::BreakpointResolver(), lldb_private::BreakpointResolver::getResolverID(), and lldb_private::BreakpointResolver::NameResolver.
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 72 of file BreakpointResolverName.h.
References BreakpointResolverName().
|
overridevirtual |
Implements lldb_private::BreakpointResolver.
Definition at line 424 of file BreakpointResolverName.cpp.
References BreakpointResolverName().
|
static |
Definition at line 91 of file BreakpointResolverName.cpp.
References lldb::eLanguageTypeUnknown, error(), lldb_private::Breakpoint::Exact, lldb_private::Status::FromErrorString(), lldb_private::Status::FromErrorStringWithFormatv(), lldb_private::StructuredData::Array::GetItemAtIndexAsInteger(), lldb_private::StructuredData::Array::GetItemAtIndexAsString(), lldb_private::BreakpointResolver::GetKey(), lldb_private::Language::GetLanguageTypeFromString(), lldb_private::StructuredData::Array::GetSize(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsArray(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsBoolean(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsInteger(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsString(), lldb_private::BreakpointResolver::LanguageName, lldb_private::BreakpointResolver::NameMaskArray, lldb_private::BreakpointResolver::Offset, lldb_private::BreakpointResolver::RegexString, lldb_private::RegularExpression, lldb_private::BreakpointResolver::SkipPrologue, and lldb_private::BreakpointResolver::SymbolNameArray.
Referenced by lldb_private::BreakpointResolver::CreateFromStructuredData().
|
overridevirtual |
Standard "Dump" method. At present it does nothing.
Implements lldb_private::BreakpointResolver.
Definition at line 421 of file BreakpointResolverName.cpp.
|
overridevirtual |
Implements lldb_private::Searcher.
Definition at line 396 of file BreakpointResolverName.cpp.
References lldb::eSearchDepthModule.
|
overridevirtual |
Prints a canonical description for the breakpoint to the stream s.
[in] | s | Stream to which the output is copied. |
Implements lldb_private::BreakpointResolver.
Definition at line 400 of file BreakpointResolverName.cpp.
References lldb::eLanguageTypeUnknown, GetName(), lldb_private::Language::GetNameForLanguageType(), m_language, m_lookups, m_match_type, m_regex, lldb_private::Stream::Printf(), and lldb_private::Breakpoint::Regexp.
|
overridevirtual |
Implements lldb_private::Searcher.
Definition at line 256 of file BreakpointResolverName.cpp.
References lldb_private::BreakpointResolver::AddLocation(), lldb_private::SearchFilter::AddressPasses(), lldb_private::Architecture::AdjustBreakpointAddress(), lldb_private::BreakpointResolver::Breakpoint, lldb_private::Breakpoints, lldb_private::Address::Clear(), lldb_private::SymbolContext::comp_unit, lldb_private::SearchFilter::CompUnitPasses(), lldb_private::Searcher::eCallbackReturnContinue, lldb_private::Searcher::eCallbackReturnStop, lldb::eDescriptionLevelVerbose, lldb::eLanguageTypeUnknown, lldb::eSymbolTypeReExported, lldb_private::Breakpoint::Exact, lldb_private::Symbol::GetAddress(), lldb_private::Target::GetArchitecturePlugin(), lldb_private::BreakpointResolver::GetBreakpoint(), lldb_private::SymbolContextList::GetContextAtIndex(), lldb_private::StreamString::GetData(), lldb_private::SearchFilter::GetFilterRequiredItems(), lldb_private::SymbolContext::GetLanguage(), lldb_private::GetLog(), lldb_private::Address::GetOffset(), lldb_private::Language::GetPrimaryLanguage(), lldb_private::SymbolContextList::GetSize(), lldb_private::Breakpoint::GetTarget(), lldb_private::Breakpoint::Glob, lldb_private::ModuleFunctionSearchOptions::include_inlines, lldb_private::ModuleFunctionSearchOptions::include_symbols, lldb_private::Breakpoint::IsInternal(), lldb_private::Address::IsValid(), LLDB_LOGF, m_class_name, m_language, m_lookups, m_match_type, m_regex, m_skip_prologue, lldb_private::SymbolContext::module_sp, lldb_private::Breakpoint::Regexp, lldb_private::SymbolContextList::RemoveContextAtIndex(), lldb_private::Symbol::ResolveReExportedSymbol(), lldb_private::Address::SetOffset(), and lldb_private::Log::Warning().
|
overridevirtual |
Reimplemented from lldb_private::BreakpointResolver.
Definition at line 190 of file BreakpointResolverName.cpp.
References lldb::eLanguageTypeUnknown, lldb_private::BreakpointResolver::GetKey(), lldb_private::Language::GetNameForLanguageType(), lldb_private::BreakpointResolver::LanguageName, m_language, m_lookups, m_regex, m_skip_prologue, lldb_private::BreakpointResolver::NameMaskArray, lldb_private::BreakpointResolver::RegexString, lldb_private::BreakpointResolver::SkipPrologue, lldb_private::BreakpointResolver::SymbolNameArray, and lldb_private::BreakpointResolver::WrapOptionsDict().
|
protected |
Definition at line 84 of file BreakpointResolverName.h.
Referenced by BreakpointResolverName(), BreakpointResolverName(), and SearchCallback().
|
protected |
Definition at line 87 of file BreakpointResolverName.h.
Referenced by AddNameLookup(), BreakpointResolverName(), BreakpointResolverName(), GetDescription(), SearchCallback(), and SerializeToStructuredData().
|
protected |
Definition at line 83 of file BreakpointResolverName.h.
Referenced by AddNameLookup(), BreakpointResolverName(), GetDescription(), SearchCallback(), and SerializeToStructuredData().
|
protected |
Definition at line 86 of file BreakpointResolverName.h.
Referenced by BreakpointResolverName(), BreakpointResolverName(), GetDescription(), and SearchCallback().
|
protected |
Definition at line 85 of file BreakpointResolverName.h.
Referenced by BreakpointResolverName(), BreakpointResolverName(), GetDescription(), SearchCallback(), and SerializeToStructuredData().
|
protected |
Definition at line 88 of file BreakpointResolverName.h.
Referenced by BreakpointResolverName(), BreakpointResolverName(), SearchCallback(), and SerializeToStructuredData().