LLDB mainline
|
"lldb/Breakpoint/BreakpointResolverFileRegex.h" This class sets breakpoints by file and line. More...
#include <BreakpointResolverFileRegex.h>
Public Member Functions | |
BreakpointResolverFileRegex (const lldb::BreakpointSP &bkpt, RegularExpression regex, const std::unordered_set< std::string > &func_name_set, bool exact_match) | |
StructuredData::ObjectSP | SerializeToStructuredData () override |
~BreakpointResolverFileRegex () 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. | |
void | AddFunctionName (const char *func_name) |
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 &options_dict, Status &error) |
static bool | classof (const BreakpointResolverFileRegex *) |
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 Attributes | |
RegularExpression | m_regex |
bool | m_exact_match |
std::unordered_set< std::string > | m_function_names |
Private Member Functions | |
BreakpointResolverFileRegex (const BreakpointResolverFileRegex &)=delete | |
const BreakpointResolverFileRegex & | operator= (const BreakpointResolverFileRegex &)=delete |
Friends | |
class | Breakpoint |
Additional Inherited Members | |
Public Types inherited from lldb_private::BreakpointResolver | |
enum | ResolverTy { FileLineResolver = 0 , AddressResolver , NameResolver , FileRegexResolver , PythonResolver , ExceptionResolver , LastKnownResolverType = ExceptionResolver , UnknownResolver } |
An enumeration for keeping track of the concrete subclass that is actually instantiated. More... | |
Public Types inherited from lldb_private::Searcher | |
enum | CallbackReturn { eCallbackReturnStop = 0 , eCallbackReturnContinue , eCallbackReturnPop } |
Static Public Attributes inherited from lldb_private::BreakpointResolver | |
static const char * | g_ty_to_name [LastKnownResolverType+2] |
Protected Types inherited from lldb_private::BreakpointResolver | |
enum class | OptionNames : uint32_t { AddressOffset = 0 , ExactMatch , FileName , Inlines , LanguageName , LineNumber , Column , ModuleName , NameMaskArray , Offset , PythonClassName , RegexString , ScriptArgs , SectionName , SearchDepth , SkipPrologue , SymbolNameArray , LastOptionName } |
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) |
Static Protected Attributes inherited from lldb_private::BreakpointResolver | |
static const char * | g_option_names [static_cast< uint32_t >(OptionNames::LastOptionName)] |
"lldb/Breakpoint/BreakpointResolverFileRegex.h" This class sets breakpoints by file and line.
Optionally, it will look for inlined instances of the file and line specification.
Definition at line 24 of file BreakpointResolverFileRegex.h.
BreakpointResolverFileRegex::BreakpointResolverFileRegex | ( | const lldb::BreakpointSP & | bkpt, |
RegularExpression | regex, | ||
const std::unordered_set< std::string > & | func_name_set, | ||
bool | exact_match ) |
Definition at line 22 of file BreakpointResolverFileRegex.cpp.
References lldb_private::BreakpointResolver::BreakpointResolver(), lldb_private::BreakpointResolver::FileRegexResolver, m_exact_match, m_function_names, and m_regex.
Referenced by BreakpointResolverFileRegex(), classof(), CopyForBreakpoint(), and operator=().
|
overridedefault |
|
privatedelete |
References BreakpointResolverFileRegex().
void BreakpointResolverFileRegex::AddFunctionName | ( | const char * | func_name | ) |
Definition at line 168 of file BreakpointResolverFileRegex.cpp.
References m_function_names.
|
inlinestatic |
Definition at line 54 of file BreakpointResolverFileRegex.h.
References lldb_private::BreakpointResolver::BreakpointResolver(), lldb_private::BreakpointResolver::FileRegexResolver, and lldb_private::BreakpointResolver::getResolverID().
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 51 of file BreakpointResolverFileRegex.h.
References BreakpointResolverFileRegex().
|
overridevirtual |
Implements lldb_private::BreakpointResolver.
Definition at line 162 of file BreakpointResolverFileRegex.cpp.
References BreakpointResolverFileRegex(), m_exact_match, m_function_names, and m_regex.
|
static |
Definition at line 29 of file BreakpointResolverFileRegex.cpp.
References error(), lldb_private::BreakpointResolver::ExactMatch, lldb_private::Status::FromErrorString(), lldb_private::Status::FromErrorStringWithFormatv(), lldb_private::StructuredData::Array::GetItemAtIndexAsString(), lldb_private::BreakpointResolver::GetKey(), lldb_private::StructuredData::Array::GetSize(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsArray(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsBoolean(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsString(), lldb_private::BreakpointResolver::RegexString, 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 159 of file BreakpointResolverFileRegex.cpp.
|
overridevirtual |
Implements lldb_private::Searcher.
Definition at line 150 of file BreakpointResolverFileRegex.cpp.
References lldb::eSearchDepthCompUnit.
|
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 154 of file BreakpointResolverFileRegex.cpp.
References m_exact_match, m_regex, and lldb_private::Stream::Printf().
|
privatedelete |
References BreakpointResolverFileRegex().
|
overridevirtual |
Implements lldb_private::Searcher.
Definition at line 95 of file BreakpointResolverFileRegex.cpp.
References lldb_private::SymbolContext::comp_unit, lldb_private::Searcher::eCallbackReturnContinue, lldb_private::Mangled::ePreferDemangledWithoutArguments, lldb_private::SymbolContextList::GetContextAtIndex(), lldb_private::CompileUnit::GetPrimaryFile(), lldb_private::SymbolContextList::GetSize(), m_exact_match, m_function_names, m_regex, lldb_private::SymbolContextList::RemoveContextAtIndex(), lldb_private::CompileUnit::ResolveSymbolContext(), lldb_private::BreakpointResolver::SetSCMatchesByLine(), lldb_private::SymbolContext::target_sp, and UINT32_MAX.
|
overridevirtual |
Reimplemented from lldb_private::BreakpointResolver.
Definition at line 75 of file BreakpointResolverFileRegex.cpp.
References lldb_private::BreakpointResolver::ExactMatch, lldb_private::BreakpointResolver::GetKey(), lldb_private::BreakpointResolver::LineNumber, m_exact_match, m_function_names, m_regex, lldb_private::BreakpointResolver::RegexString, and lldb_private::BreakpointResolver::WrapOptionsDict().
|
friend |
Definition at line 62 of file BreakpointResolverFileRegex.h.
References Breakpoint.
Referenced by Breakpoint.
|
protected |
Definition at line 65 of file BreakpointResolverFileRegex.h.
Referenced by BreakpointResolverFileRegex(), CopyForBreakpoint(), GetDescription(), SearchCallback(), and SerializeToStructuredData().
|
protected |
Definition at line 67 of file BreakpointResolverFileRegex.h.
Referenced by AddFunctionName(), BreakpointResolverFileRegex(), CopyForBreakpoint(), SearchCallback(), and SerializeToStructuredData().
|
protected |
Definition at line 64 of file BreakpointResolverFileRegex.h.
Referenced by BreakpointResolverFileRegex(), CopyForBreakpoint(), GetDescription(), SearchCallback(), and SerializeToStructuredData().