1 //===-- BreakpointResolverAddress.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_BreakpointResolverAddress_h_ 11 #define liblldb_BreakpointResolverAddress_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 BreakpointResolverAddress BreakpointResolverAddress.h "lldb/Breakpoint/BreakpointResolverAddress.h" 23 /// @brief This class sets breakpoints on a given Address. This breakpoint only takes 24 /// once, and then it won't attempt to reset itself. 25 //---------------------------------------------------------------------- 26 27 class BreakpointResolverAddress: 28 public BreakpointResolver 29 { 30 public: 31 BreakpointResolverAddress (Breakpoint *bkpt, 32 const Address &addr); 33 34 virtual 35 ~BreakpointResolverAddress (); 36 37 virtual void 38 ResolveBreakpoint (SearchFilter &filter); 39 40 virtual void 41 ResolveBreakpointInModules (SearchFilter &filter, 42 ModuleList &modules); 43 44 virtual Searcher::CallbackReturn 45 SearchCallback (SearchFilter &filter, 46 SymbolContext &context, 47 Address *addr, 48 bool containing); 49 50 virtual Searcher::Depth 51 GetDepth (); 52 53 virtual void 54 GetDescription (Stream *s); 55 56 virtual void 57 Dump (Stream *s) const; 58 59 /// Methods for support type inquiry through isa, cast, and dyn_cast: classof(const BreakpointResolverAddress *)60 static inline bool classof(const BreakpointResolverAddress *) { return true; } classof(const BreakpointResolver * V)61 static inline bool classof(const BreakpointResolver *V) { 62 return V->getResolverID() == BreakpointResolver::AddressResolver; 63 } 64 65 protected: 66 Address m_addr; 67 68 private: 69 DISALLOW_COPY_AND_ASSIGN(BreakpointResolverAddress); 70 }; 71 72 } // namespace lldb_private 73 74 #endif // liblldb_BreakpointResolverAddress_h_ 75