aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/Breakpoint/BreakpointResolverName.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Breakpoint/BreakpointResolverName.h')
-rw-r--r--include/lldb/Breakpoint/BreakpointResolverName.h140
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