1 //===-- AddressResolverFileLine.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_AddressResolverFileLine_h_ 11 #define liblldb_AddressResolverFileLine_h_ 12 13 #include "lldb/Core/AddressResolver.h" 14 #include "lldb/Core/SearchFilter.h" 15 #include "lldb/Utility/FileSpec.h" 16 #include "lldb/lldb-defines.h" 17 18 #include <stdint.h> 19 20 namespace lldb_private { 21 class Address; 22 } 23 namespace lldb_private { 24 class Stream; 25 } 26 namespace lldb_private { 27 class SymbolContext; 28 } 29 30 namespace lldb_private { 31 32 //---------------------------------------------------------------------- 33 /// @class AddressResolverFileLine AddressResolverFileLine.h 34 /// "lldb/Core/AddressResolverFileLine.h" This class finds address for source 35 /// file and line. Optionally, it will look for inlined instances of the file 36 /// and line specification. 37 //---------------------------------------------------------------------- 38 39 class AddressResolverFileLine : public AddressResolver { 40 public: 41 AddressResolverFileLine(const FileSpec &resolver, uint32_t line_no, 42 bool check_inlines); 43 44 ~AddressResolverFileLine() override; 45 46 Searcher::CallbackReturn SearchCallback(SearchFilter &filter, 47 SymbolContext &context, Address *addr, 48 bool containing) override; 49 50 lldb::SearchDepth GetDepth() override; 51 52 void GetDescription(Stream *s) override; 53 54 protected: 55 FileSpec m_file_spec; // This is the file spec we are looking for. 56 uint32_t m_line_number; // This is the line number that we are looking for. 57 bool m_inlines; // This determines whether the resolver looks for inlined 58 // functions or not. 59 60 private: 61 DISALLOW_COPY_AND_ASSIGN(AddressResolverFileLine); 62 }; 63 64 } // namespace lldb_private 65 66 #endif // liblldb_AddressResolverFileLine_h_ 67