LLDB API Documentation

SBCompileUnit.h
Go to the documentation of this file.
1 //===-- SBCompileUnit.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 LLDB_SBCompileUnit_h_
11 #define LLDB_SBCompileUnit_h_
12 
13 #include "lldb/API/SBDefines.h"
14 #include "lldb/API/SBFileSpec.h"
15 
16 namespace lldb {
17 
19 {
20 public:
21 
22  SBCompileUnit ();
23 
25 
26  ~SBCompileUnit ();
27 
28  const lldb::SBCompileUnit &
29  operator = (const lldb::SBCompileUnit &rhs);
30 
31  bool
32  IsValid () const;
33 
35  GetFileSpec () const;
36 
37  uint32_t
38  GetNumLineEntries () const;
39 
41  GetLineEntryAtIndex (uint32_t idx) const;
42 
43  uint32_t
44  FindLineEntryIndex (uint32_t start_idx,
45  uint32_t line,
46  lldb::SBFileSpec *inline_file_spec) const;
47 
48  uint32_t
49  FindLineEntryIndex (uint32_t start_idx,
50  uint32_t line,
51  lldb::SBFileSpec *inline_file_spec,
52  bool exact) const;
53 
55  GetSupportFileAtIndex (uint32_t idx) const;
56 
57  uint32_t
58  GetNumSupportFiles () const;
59 
60  uint32_t
61  FindSupportFileIndex (uint32_t start_idx, const SBFileSpec &sb_file, bool full);
62 
63  //------------------------------------------------------------------
64  /// Get all types matching \a type_mask from debug info in this
65  /// compile unit.
66  ///
67  /// @param[in] type_mask
68  /// A bitfield that consists of one or more bits logically OR'ed
69  /// together from the lldb::TypeClass enumeration. This allows
70  /// you to request only structure types, or only class, struct
71  /// and union types. Passing in lldb::eTypeClassAny will return
72  /// all types found in the debug information for this compile
73  /// unit.
74  ///
75  /// @return
76  /// A list of types in this compile unit that match \a type_mask
77  //------------------------------------------------------------------
79  GetTypes (uint32_t type_mask = lldb::eTypeClassAny);
80 
81  bool
82  operator == (const lldb::SBCompileUnit &rhs) const;
83 
84  bool
85  operator != (const lldb::SBCompileUnit &rhs) const;
86 
87  bool
88  GetDescription (lldb::SBStream &description);
89 
90 private:
91  friend class SBAddress;
92  friend class SBFrame;
93  friend class SBSymbolContext;
94  friend class SBModule;
95 
96  SBCompileUnit (lldb_private::CompileUnit *lldb_object_ptr);
97 
98  const lldb_private::CompileUnit *
99  operator->() const;
100 
101  const lldb_private::CompileUnit &
102  operator*() const;
103 
104  lldb_private::CompileUnit *
105  get ();
106 
107  void
108  reset (lldb_private::CompileUnit *lldb_object_ptr);
109 
110  lldb_private::CompileUnit *m_opaque_ptr;
111 };
112 
113 
114 } // namespace lldb
115 
116 #endif // LLDB_SBCompileUnit_h_