1 //===-- SBFunction.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_SBFunction_h_ 11 #define LLDB_SBFunction_h_ 12 13 #include "lldb/API/SBDefines.h" 14 #include "lldb/API/SBAddress.h" 15 #include "lldb/API/SBInstructionList.h" 16 17 namespace lldb { 18 19 class SBFunction 20 { 21 public: 22 23 SBFunction (); 24 25 SBFunction (const lldb::SBFunction &rhs); 26 27 const lldb::SBFunction & 28 operator = (const lldb::SBFunction &rhs); 29 30 ~SBFunction (); 31 32 bool 33 IsValid () const; 34 35 const char * 36 GetName() const; 37 38 const char * 39 GetMangledName () const; 40 41 lldb::SBInstructionList 42 GetInstructions (lldb::SBTarget target); 43 44 lldb::SBInstructionList 45 GetInstructions (lldb::SBTarget target, const char *flavor); 46 47 lldb::SBAddress 48 GetStartAddress (); 49 50 lldb::SBAddress 51 GetEndAddress (); 52 53 uint32_t 54 GetPrologueByteSize (); 55 56 lldb::SBType 57 GetType (); 58 59 lldb::SBBlock 60 GetBlock (); 61 62 bool 63 operator == (const lldb::SBFunction &rhs) const; 64 65 bool 66 operator != (const lldb::SBFunction &rhs) const; 67 68 bool 69 GetDescription (lldb::SBStream &description); 70 71 protected: 72 73 lldb_private::Function * 74 get (); 75 76 void 77 reset (lldb_private::Function *lldb_object_ptr); 78 79 private: 80 friend class SBAddress; 81 friend class SBFrame; 82 friend class SBSymbolContext; 83 84 SBFunction (lldb_private::Function *lldb_object_ptr); 85 86 87 lldb_private::Function *m_opaque_ptr; 88 }; 89 90 91 } // namespace lldb 92 93 #endif // LLDB_SBFunction_h_ 94