]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - include/lldb/Core/AddressResolverFileLine.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / include / lldb / Core / AddressResolverFileLine.h
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 // Project includes
14 #include "lldb/Core/AddressResolver.h"
15
16 namespace lldb_private {
17
18 //----------------------------------------------------------------------
19 /// @class AddressResolverFileLine AddressResolverFileLine.h
20 /// "lldb/Core/AddressResolverFileLine.h"
21 /// @brief This class finds address for source file and line.  Optionally, it
22 /// will look for inlined
23 /// instances of the file and line specification.
24 //----------------------------------------------------------------------
25
26 class AddressResolverFileLine : public AddressResolver {
27 public:
28   AddressResolverFileLine(const FileSpec &resolver, uint32_t line_no,
29                           bool check_inlines);
30
31   ~AddressResolverFileLine() override;
32
33   Searcher::CallbackReturn SearchCallback(SearchFilter &filter,
34                                           SymbolContext &context, Address *addr,
35                                           bool containing) override;
36
37   Searcher::Depth GetDepth() override;
38
39   void GetDescription(Stream *s) override;
40
41 protected:
42   FileSpec m_file_spec;   // This is the file spec we are looking for.
43   uint32_t m_line_number; // This is the line number that we are looking for.
44   bool m_inlines; // This determines whether the resolver looks for inlined
45                   // functions or not.
46
47 private:
48   DISALLOW_COPY_AND_ASSIGN(AddressResolverFileLine);
49 };
50
51 } // namespace lldb_private
52
53 #endif // liblldb_AddressResolverFileLine_h_