124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- BreakpointResolverAddress.h -----------------------------*- C++ -*-===// 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// The LLVM Compiler Infrastructure 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details. 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef liblldb_BreakpointResolverAddress_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define liblldb_BreakpointResolverAddress_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// C Includes 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// C++ Includes 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// Other libraries and framework includes 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// Project includes 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/Breakpoint/BreakpointResolver.h" 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb_private { 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// @class BreakpointResolverAddress BreakpointResolverAddress.h "lldb/Breakpoint/BreakpointResolverAddress.h" 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// @brief This class sets breakpoints on a given Address. This breakpoint only takes 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// once, and then it won't attempt to reset itself. 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BreakpointResolverAddress: 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner public BreakpointResolver 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner BreakpointResolverAddress (Breakpoint *bkpt, 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const Address &addr); 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ~BreakpointResolverAddress (); 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual void 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ResolveBreakpoint (SearchFilter &filter); 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual void 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ResolveBreakpointInModules (SearchFilter &filter, 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ModuleList &modules); 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual Searcher::CallbackReturn 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SearchCallback (SearchFilter &filter, 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SymbolContext &context, 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Address *addr, 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool containing); 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual Searcher::Depth 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetDepth (); 5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual void 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetDescription (Stream *s); 5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual void 5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Dump (Stream *s) const; 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 59a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen /// Methods for support type inquiry through isa, cast, and dyn_cast: 60a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen static inline bool classof(const BreakpointResolverAddress *) { return true; } 61a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen static inline bool classof(const BreakpointResolver *V) { 62a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen return V->getResolverID() == BreakpointResolver::AddressResolver; 63a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen } 64a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen 6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected: 6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Address m_addr; 6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate: 6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner DISALLOW_COPY_AND_ASSIGN(BreakpointResolverAddress); 7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb_private 7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // liblldb_BreakpointResolverAddress_h_ 75