124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- BreakpointResolverFileLine.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_BreakpointResolverFileLine_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define liblldb_BreakpointResolverFileLine_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 BreakpointResolverFileLine BreakpointResolverFileLine.h "lldb/Breakpoint/BreakpointResolverFileLine.h" 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// @brief This class sets breakpoints by file and line. Optionally, it will look for inlined 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// instances of the file and line specification. 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass BreakpointResolverFileLine : 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner public BreakpointResolver 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner BreakpointResolverFileLine (Breakpoint *bkpt, 3252c8b6e3205e11e90adc83521c01915fc13626deGreg Clayton const FileSpec &resolver, 3352c8b6e3205e11e90adc83521c01915fc13626deGreg Clayton uint32_t line_no, 342cf5ccbbbe3343a6c973d0d65ad5de178a414e30Jim Ingham bool check_inlines, 352cf5ccbbbe3343a6c973d0d65ad5de178a414e30Jim Ingham bool skip_prologue); 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ~BreakpointResolverFileLine (); 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual Searcher::CallbackReturn 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SearchCallback (SearchFilter &filter, 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SymbolContext &context, 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Address *addr, 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool containing); 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual Searcher::Depth 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetDepth (); 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual void 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetDescription (Stream *s); 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual void 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Dump (Stream *s) const; 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 55a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen /// Methods for support type inquiry through isa, cast, and dyn_cast: 56a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen static inline bool classof(const BreakpointResolverFileLine *) { return true; } 57a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen static inline bool classof(const BreakpointResolver *V) { 58a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen return V->getResolverID() == BreakpointResolver::FileLineResolver; 59a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen } 60a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen 6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected: 62a62ad7c886252a08d614a2b391d0774a151b7196Johnny Chen friend class Breakpoint; 6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner FileSpec m_file_spec; // This is the file spec we are looking for. 6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t m_line_number; // This is the line number that we are looking for. 6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool m_inlines; // This determines whether the resolver looks for inlined functions or not. 662cf5ccbbbe3343a6c973d0d65ad5de178a414e30Jim Ingham bool m_skip_prologue; 6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate: 6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner DISALLOW_COPY_AND_ASSIGN(BreakpointResolverFileLine); 7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb_private 7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // liblldb_BreakpointResolverFileLine_h_ 75