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