1 //===-- BreakpointResolverFileRegex.h ----------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef liblldb_BreakpointResolverFileRegex_h_ 11 #define liblldb_BreakpointResolverFileRegex_h_ 12 13 // C Includes 14 // C++ Includes 15 // Other libraries and framework includes 16 // Project includes 17 #include "lldb/Breakpoint/BreakpointResolver.h" 18 19 namespace lldb_private { 20 21 //---------------------------------------------------------------------- 22 /// @class BreakpointResolverFileRegex BreakpointResolverFileRegex.h "lldb/Breakpoint/BreakpointResolverFileRegex.h" 23 /// @brief This class sets breakpoints by file and line. Optionally, it will look for inlined 24 /// instances of the file and line specification. 25 //---------------------------------------------------------------------- 26 27 class BreakpointResolverFileRegex : 28 public BreakpointResolver 29 { 30 public: 31 BreakpointResolverFileRegex (Breakpoint *bkpt, 32 RegularExpression ®ex); 33 34 virtual 35 ~BreakpointResolverFileRegex (); 36 37 virtual Searcher::CallbackReturn 38 SearchCallback (SearchFilter &filter, 39 SymbolContext &context, 40 Address *addr, 41 bool containing); 42 43 virtual Searcher::Depth 44 GetDepth (); 45 46 virtual void 47 GetDescription (Stream *s); 48 49 virtual void 50 Dump (Stream *s) const; 51 52 /// Methods for support type inquiry through isa, cast, and dyn_cast: classof(const BreakpointResolverFileRegex *)53 static inline bool classof(const BreakpointResolverFileRegex *) { return true; } classof(const BreakpointResolver * V)54 static inline bool classof(const BreakpointResolver *V) { 55 return V->getResolverID() == BreakpointResolver::FileRegexResolver; 56 } 57 58 protected: 59 friend class Breakpoint; 60 RegularExpression m_regex; // This is the line expression that we are looking for. 61 62 private: 63 DISALLOW_COPY_AND_ASSIGN(BreakpointResolverFileRegex); 64 }; 65 66 } // namespace lldb_private 67 68 #endif // liblldb_BreakpointResolverFileRegex_h_ 69