diff options
Diffstat (limited to 'include/lldb/Breakpoint/BreakpointResolverName.h')
-rw-r--r-- | include/lldb/Breakpoint/BreakpointResolverName.h | 140 |
1 files changed, 61 insertions, 79 deletions
diff --git a/include/lldb/Breakpoint/BreakpointResolverName.h b/include/lldb/Breakpoint/BreakpointResolverName.h index a11359dd0094..4223125d9268 100644 --- a/include/lldb/Breakpoint/BreakpointResolverName.h +++ b/include/lldb/Breakpoint/BreakpointResolverName.h @@ -12,8 +12,8 @@ // C Includes // C++ Includes -#include <vector> #include <string> +#include <vector> // Other libraries and framework includes // Project includes @@ -23,93 +23,75 @@ namespace lldb_private { //---------------------------------------------------------------------- -/// @class BreakpointResolverName BreakpointResolverName.h "lldb/Breakpoint/BreakpointResolverName.h" -/// @brief This class sets breakpoints on a given function name, either by exact match +/// @class BreakpointResolverName BreakpointResolverName.h +/// "lldb/Breakpoint/BreakpointResolverName.h" +/// @brief This class sets breakpoints on a given function name, either by exact +/// match /// or by regular expression. //---------------------------------------------------------------------- -class BreakpointResolverName: - public BreakpointResolver -{ +class BreakpointResolverName : public BreakpointResolver { public: + BreakpointResolverName(Breakpoint *bkpt, const char *name, + uint32_t name_type_mask, lldb::LanguageType language, + Breakpoint::MatchType type, lldb::addr_t offset, + bool skip_prologue); + + // This one takes an array of names. It is always MatchType = Exact. + BreakpointResolverName(Breakpoint *bkpt, const char *names[], + size_t num_names, uint32_t name_type_mask, + lldb::LanguageType language, lldb::addr_t offset, + bool skip_prologue); + + // This one takes a C++ array of names. It is always MatchType = Exact. + BreakpointResolverName(Breakpoint *bkpt, std::vector<std::string> names, + uint32_t name_type_mask, lldb::LanguageType language, + lldb::addr_t offset, bool skip_prologue); + + // Creates a function breakpoint by regular expression. Takes over control of + // the lifespan of func_regex. + BreakpointResolverName(Breakpoint *bkpt, RegularExpression &func_regex, + lldb::LanguageType language, lldb::addr_t offset, + bool skip_prologue); + + static BreakpointResolver * + CreateFromStructuredData(Breakpoint *bkpt, + const StructuredData::Dictionary &data_dict, + Error &error); + + StructuredData::ObjectSP SerializeToStructuredData() override; + + ~BreakpointResolverName() override; + + Searcher::CallbackReturn SearchCallback(SearchFilter &filter, + SymbolContext &context, Address *addr, + bool containing) override; + + Searcher::Depth GetDepth() override; + + void GetDescription(Stream *s) override; + + void Dump(Stream *s) const override; + + /// Methods for support type inquiry through isa, cast, and dyn_cast: + static inline bool classof(const BreakpointResolverName *) { return true; } + static inline bool classof(const BreakpointResolver *V) { + return V->getResolverID() == BreakpointResolver::NameResolver; + } - BreakpointResolverName (Breakpoint *bkpt, - const char *name, - uint32_t name_type_mask, - lldb::LanguageType language, - Breakpoint::MatchType type, - lldb::addr_t offset, - bool skip_prologue); - - // This one takes an array of names. It is always MatchType = Exact. - BreakpointResolverName (Breakpoint *bkpt, - const char *names[], - size_t num_names, - uint32_t name_type_mask, - lldb::LanguageType language, - lldb::addr_t offset, - bool skip_prologue); - - // This one takes a C++ array of names. It is always MatchType = Exact. - BreakpointResolverName (Breakpoint *bkpt, - std::vector<std::string> names, - uint32_t name_type_mask, - lldb::LanguageType language, - lldb::addr_t offset, - bool skip_prologue); - - // Creates a function breakpoint by regular expression. Takes over control of the lifespan of func_regex. - BreakpointResolverName (Breakpoint *bkpt, - RegularExpression &func_regex, - lldb::LanguageType language, - lldb::addr_t offset, - bool skip_prologue); - - BreakpointResolverName (Breakpoint *bkpt, - const char *class_name, - const char *method, - Breakpoint::MatchType type, - lldb::addr_t offset, - bool skip_prologue); - - ~BreakpointResolverName() override; - - Searcher::CallbackReturn - SearchCallback (SearchFilter &filter, - SymbolContext &context, - Address *addr, - bool containing) override; - - Searcher::Depth - GetDepth () override; - - void - GetDescription (Stream *s) override; - - void - Dump (Stream *s) const override; - - /// Methods for support type inquiry through isa, cast, and dyn_cast: - static inline bool classof(const BreakpointResolverName *) { return true; } - static inline bool classof(const BreakpointResolver *V) { - return V->getResolverID() == BreakpointResolver::NameResolver; - } - - lldb::BreakpointResolverSP - CopyForBreakpoint (Breakpoint &breakpoint) override; + lldb::BreakpointResolverSP CopyForBreakpoint(Breakpoint &breakpoint) override; protected: - BreakpointResolverName(const BreakpointResolverName &rhs); + BreakpointResolverName(const BreakpointResolverName &rhs); - 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; + 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; - void - AddNameLookup (const ConstString &name, uint32_t name_type_mask); + void AddNameLookup(const ConstString &name, uint32_t name_type_mask); }; } // namespace lldb_private |