LLDB mainline
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | List of all members
lldb_private::BreakpointResolverAddress Class Reference

"lldb/Breakpoint/BreakpointResolverAddress.h" This class sets breakpoints on a given Address. More...

#include <BreakpointResolverAddress.h>

Inheritance diagram for lldb_private::BreakpointResolverAddress:
Inheritance graph
[legend]

Public Member Functions

 BreakpointResolverAddress (const lldb::BreakpointSP &bkpt, const Address &addr)
 
 BreakpointResolverAddress (const lldb::BreakpointSP &bkpt, const Address &addr, const FileSpec &module_spec)
 
 ~BreakpointResolverAddress () override=default
 
StructuredData::ObjectSP SerializeToStructuredData () override
 
void ResolveBreakpoint (SearchFilter &filter) override
 In response to this method the resolver scans all the modules in the breakpoint's target, and adds any new locations it finds.
 
void ResolveBreakpointInModules (SearchFilter &filter, ModuleList &modules) override
 In response to this method the resolver scans the modules in the module list modules, and adds any new locations it finds.
 
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)
 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
 
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.
 
void GetDescription (Stream *s) override=0
 Prints a canonical description for the breakpoint to the stream s.
 
virtual void Dump (Stream *s) const =0
 Standard "Dump" method. At present it does nothing.
 
virtual StructuredData::ObjectSP SerializeToStructuredData ()
 
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 ()
 
virtual lldb::BreakpointResolverSP CopyForBreakpoint (lldb::BreakpointSP &breakpoint)=0
 
- Public Member Functions inherited from lldb_private::Searcher
 Searcher ()
 
virtual ~Searcher ()
 
virtual CallbackReturn SearchCallback (SearchFilter &filter, SymbolContext &context, Address *addr)=0
 
virtual lldb::SearchDepth GetDepth ()=0
 
virtual void GetDescription (Stream *s)
 Prints a canonical description for the searcher to the stream s.
 

Static Public Member Functions

static lldb::BreakpointResolverSP CreateFromStructuredData (const StructuredData::Dictionary &options_dict, Status &error)
 
static bool classof (const BreakpointResolverAddress *)
 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

Address m_addr
 
lldb::addr_t m_resolved_addr
 
FileSpec m_module_filespec
 

Private Member Functions

 BreakpointResolverAddress (const BreakpointResolverAddress &)=delete
 
const BreakpointResolverAddressoperator= (const BreakpointResolverAddress &)=delete
 

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)]
 

Detailed Description

"lldb/Breakpoint/BreakpointResolverAddress.h" This class sets breakpoints on a given Address.

This breakpoint only takes once, and then it won't attempt to reset itself.

Definition at line 22 of file BreakpointResolverAddress.h.

Constructor & Destructor Documentation

◆ BreakpointResolverAddress() [1/3]

BreakpointResolverAddress::BreakpointResolverAddress ( const lldb::BreakpointSP bkpt,
const Address addr 
)

Definition at line 28 of file BreakpointResolverAddress.cpp.

◆ BreakpointResolverAddress() [2/3]

BreakpointResolverAddress::BreakpointResolverAddress ( const lldb::BreakpointSP bkpt,
const Address addr,
const FileSpec module_spec 
)

Definition at line 22 of file BreakpointResolverAddress.cpp.

◆ ~BreakpointResolverAddress()

lldb_private::BreakpointResolverAddress::~BreakpointResolverAddress ( )
overridedefault

◆ BreakpointResolverAddress() [3/3]

lldb_private::BreakpointResolverAddress::BreakpointResolverAddress ( const BreakpointResolverAddress )
privatedelete

Member Function Documentation

◆ classof() [1/2]

static bool lldb_private::BreakpointResolverAddress::classof ( const BreakpointResolver V)
inlinestatic

◆ classof() [2/2]

static bool lldb_private::BreakpointResolverAddress::classof ( const BreakpointResolverAddress )
inlinestatic

Methods for support type inquiry through isa, cast, and dyn_cast:

Definition at line 55 of file BreakpointResolverAddress.h.

◆ CopyForBreakpoint()

lldb::BreakpointResolverSP BreakpointResolverAddress::CopyForBreakpoint ( lldb::BreakpointSP breakpoint)
overridevirtual

Implements lldb_private::BreakpointResolver.

Definition at line 172 of file BreakpointResolverAddress.cpp.

References m_addr.

◆ CreateFromStructuredData()

BreakpointResolverSP BreakpointResolverAddress::CreateFromStructuredData ( const StructuredData::Dictionary options_dict,
Status error 
)
static

◆ Dump()

void BreakpointResolverAddress::Dump ( Stream s) const
overridevirtual

Standard "Dump" method. At present it does nothing.

Implements lldb_private::BreakpointResolver.

Definition at line 169 of file BreakpointResolverAddress.cpp.

◆ GetDepth()

lldb::SearchDepth BreakpointResolverAddress::GetDepth ( )
overridevirtual

Implements lldb_private::Searcher.

Definition at line 158 of file BreakpointResolverAddress.cpp.

References lldb::eSearchDepthTarget.

◆ GetDescription()

void BreakpointResolverAddress::GetDescription ( Stream s)
overridevirtual

◆ operator=()

const BreakpointResolverAddress & lldb_private::BreakpointResolverAddress::operator= ( const BreakpointResolverAddress )
privatedelete

◆ ResolveBreakpoint()

void BreakpointResolverAddress::ResolveBreakpoint ( SearchFilter filter)
overridevirtual

In response to this method the resolver scans all the modules in the breakpoint's target, and adds any new locations it finds.

Parameters
[in]filterThe filter that will manage the search for this resolver.

Reimplemented from lldb_private::BreakpointResolver.

Definition at line 87 of file BreakpointResolverAddress.cpp.

References lldb_private::BreakpointResolver::GetBreakpoint(), lldb_private::Address::GetSection(), m_addr, m_module_filespec, and lldb_private::BreakpointResolver::ResolveBreakpoint().

◆ ResolveBreakpointInModules()

void BreakpointResolverAddress::ResolveBreakpointInModules ( SearchFilter filter,
ModuleList modules 
)
overridevirtual

In response to this method the resolver scans the modules in the module list modules, and adds any new locations it finds.

Parameters
[in]filterThe filter that will manage the search for this resolver.

Reimplemented from lldb_private::BreakpointResolver.

Definition at line 102 of file BreakpointResolverAddress.cpp.

References lldb_private::BreakpointResolver::GetBreakpoint(), lldb_private::Address::GetSection(), m_addr, and lldb_private::BreakpointResolver::ResolveBreakpointInModules().

◆ SearchCallback()

Searcher::CallbackReturn BreakpointResolverAddress::SearchCallback ( SearchFilter filter,
SymbolContext context,
Address addr 
)
overridevirtual

◆ SerializeToStructuredData()

StructuredData::ObjectSP BreakpointResolverAddress::SerializeToStructuredData ( )
overridevirtual

Member Data Documentation

◆ m_addr

Address lldb_private::BreakpointResolverAddress::m_addr
protected

◆ m_module_filespec

FileSpec lldb_private::BreakpointResolverAddress::m_module_filespec
protected

◆ m_resolved_addr

lldb::addr_t lldb_private::BreakpointResolverAddress::m_resolved_addr
protected

Definition at line 66 of file BreakpointResolverAddress.h.

Referenced by SearchCallback().


The documentation for this class was generated from the following files: