Go to the documentation of this file.
9 #ifndef LLDB_BREAKPOINT_BREAKPOINTRESOLVER_H
10 #define LLDB_BREAKPOINT_BREAKPOINTRESOLVER_H
48 unsigned char resolverType,
63 auto breakpoint_sp =
m_breakpoint.expired() ? lldb::BreakpointSP() :
65 assert(breakpoint_sp);
106 static lldb::BreakpointResolverSP
148 if (
SubclassID > ResolverTy::LastKnownResolverType)
149 return ResolverTy::UnknownResolver;
160 virtual lldb::BreakpointResolverSP
206 bool skip_prologue, llvm::StringRef log_ident,
208 llvm::Optional<uint16_t> column = llvm::None);
210 const char *) =
delete;
213 bool *new_location =
nullptr);
218 bool skip_prologue, llvm::StringRef log_ident);
232 #endif // LLDB_BREAKPOINT_BREAKPOINTRESOLVER_H
static ResolverTy NameToResolverTy(llvm::StringRef name)
~BreakpointResolver() override
The Destructor is virtual, all significant breakpoint resolvers derive from this class.
ResolverTy
An enumeration for keeping track of the concrete subclass that is actually instantiated.
enum ResolverTy GetResolverTy()
lldb::BreakpointWP m_breakpoint
const unsigned char SubclassID
static const char * g_option_names[static_cast< uint32_t >(OptionNames::LastOptionName)]
virtual lldb::BreakpointResolverSP CopyForBreakpoint(lldb::BreakpointSP &breakpoint)=0
static llvm::raw_ostream & error(Stream &strm)
virtual void ResolveBreakpointInModules(SearchFilter &filter, ModuleList &modules)
In response to this method the resolver scans the modules in the module list modules,...
static lldb::BreakpointResolverSP CreateFromStructuredData(const StructuredData::Dictionary &resolver_dict, Status &error)
This section handles serializing and deserializing from StructuredData objects.
virtual void NotifyBreakpointSet()
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.
General Outline: Provides the callback and search depth for the SearchFilter search.
virtual StructuredData::ObjectSP SerializeToStructuredData()
std::shared_ptr< Object > ObjectSP
static const char * ResolverTyToName(enum ResolverTy)
const char * GetResolverName()
std::shared_ptr< Dictionary > DictionarySP
const BreakpointResolver & operator=(const BreakpointResolver &)=delete
void SetBreakpoint(const lldb::BreakpointSP &bkpt)
This sets the breakpoint for this resolver.
lldb::BreakpointLocationSP AddLocation(Address loc_addr, bool *new_location=nullptr)
General Outline: The BreakpointResolver is a Searcher.
StructuredData::DictionarySP WrapOptionsDict(StructuredData::DictionarySP options_dict_sp)
static const char * g_ty_to_name[LastKnownResolverType+2]
void SetSCMatchesByLine(SearchFilter &filter, SymbolContextList &sc_list, bool skip_prologue, llvm::StringRef log_ident, uint32_t line=0, llvm::Optional< uint16_t > column=llvm::None)
Takes a symbol context list of matches which supposedly represent the same file and line number in a ...
static const char * GetKey(OptionNames enum_value)
static const char * GetSerializationSubclassOptionsKey()
virtual void Dump(Stream *s) const =0
Standard "Dump" method. At present it does nothing.
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,...
A class that represents a running process on the host machine.
void GetDescription(Stream *s) override=0
Prints a canonical description for the breakpoint to the stream s.
General Outline: Provides the callback and search depth for the SearchFilter search.
static const char * GetSerializationSubclassKey()
static const char * GetSerializationKey()
lldb::BreakpointSP GetBreakpoint() const
This gets the breakpoint for this resolver.
General Outline: A breakpoint has four main parts, a filter, a resolver, the list of breakpoint locat...
unsigned getResolverID() const
getResolverID - Return an ID for the concrete type of this object.