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 18 class SBCompileUnit 19 { 20 public: 21 22 SBCompileUnit (); 23 24 SBCompileUnit (const lldb::SBCompileUnit &rhs); 25 26 ~SBCompileUnit (); 27 28 const lldb::SBCompileUnit & 29 operator = (const lldb::SBCompileUnit &rhs); 30 31 bool 32 IsValid () const; 33 34 lldb::SBFileSpec 35 GetFileSpec () const; 36 37 uint32_t 38 GetNumLineEntries () const; 39 40 lldb::SBLineEntry 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 54 SBFileSpec 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 //------------------------------------------------------------------ 78 lldb::SBTypeList 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_ 117