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