SBSymbol.h revision b0e68d996b28cf81a28aeceefd69f7ed8d4aba99
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#ifndef SWIG 31 const lldb::SBSymbol & 32 operator = (const lldb::SBSymbol &rhs); 33#endif 34 35 bool 36 IsValid () const; 37 38 39 const char * 40 GetName() const; 41 42 const char * 43 GetMangledName () const; 44 45 lldb::SBInstructionList 46 GetInstructions (lldb::SBTarget target); 47 48 SBAddress 49 GetStartAddress (); 50 51 SBAddress 52 GetEndAddress (); 53 54 uint32_t 55 GetPrologueByteSize (); 56 57 SymbolType 58 GetType (); 59 60#ifndef SWIG 61 bool 62 operator == (const lldb::SBSymbol &rhs) const; 63 64 bool 65 operator != (const lldb::SBSymbol &rhs) const; 66#endif 67 68 bool 69 GetDescription (lldb::SBStream &description); 70 71protected: 72 73#ifndef SWIG 74 lldb_private::Symbol * 75 get (); 76 77 void 78 reset (lldb_private::Symbol *); 79#endif 80 81private: 82 friend class SBFrame; 83 friend class SBModule; 84 friend class SBSymbolContext; 85 86 SBSymbol (lldb_private::Symbol *lldb_object_ptr); 87 88 void 89 SetSymbol (lldb_private::Symbol *lldb_object_ptr); 90 91 lldb_private::Symbol *m_opaque_ptr; 92}; 93 94 95} // namespace lldb 96 97#endif // LLDB_SBSymbol_h_ 98