SBSymbolContext.h revision 23b8abbe214c252028f6e09f79169529c846409d
1//===-- SBSymbolContext.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_SBSymbolContext_h_ 11#define LLDB_SBSymbolContext_h_ 12 13#include "lldb/API/SBDefines.h" 14#include "lldb/API/SBBlock.h" 15#include "lldb/API/SBCompileUnit.h" 16#include "lldb/API/SBFunction.h" 17#include "lldb/API/SBLineEntry.h" 18#include "lldb/API/SBModule.h" 19#include "lldb/API/SBSymbol.h" 20 21namespace lldb { 22 23class SBSymbolContext 24{ 25public: 26 SBSymbolContext (); 27 28 SBSymbolContext (const lldb::SBSymbolContext& rhs); 29 30 ~SBSymbolContext (); 31 32 bool 33 IsValid () const; 34 35#ifndef SWIG 36 const lldb::SBSymbolContext & 37 operator = (const lldb::SBSymbolContext &rhs); 38#endif 39 40 lldb::SBModule GetModule (); 41 lldb::SBCompileUnit GetCompileUnit (); 42 lldb::SBFunction GetFunction (); 43 lldb::SBBlock GetBlock (); 44 lldb::SBLineEntry GetLineEntry (); 45 lldb::SBSymbol GetSymbol (); 46 47 void SetModule (lldb::SBModule module); 48 void SetCompileUnit (lldb::SBCompileUnit compile_unit); 49 void SetFunction (lldb::SBFunction function); 50 void SetBlock (lldb::SBBlock block); 51 void SetLineEntry (lldb::SBLineEntry line_entry); 52 void SetSymbol (lldb::SBSymbol symbol); 53 54 SBSymbolContext 55 GetParentInlinedFrameInfo (const SBAddress &curr_frame_pc, 56 bool is_concrete_frame, 57 SBAddress &parent_frame_addr) const; 58 59 bool 60 GetDescription (lldb::SBStream &description); 61 62protected: 63 friend class SBAddress; 64 friend class SBFrame; 65 friend class SBModule; 66 friend class SBThread; 67 friend class SBTarget; 68 friend class SBSymbolContextList; 69 70#ifndef SWIG 71 72 lldb_private::SymbolContext* 73 operator->() const; 74 75 lldb_private::SymbolContext& 76 operator*(); 77 78 lldb_private::SymbolContext& 79 ref(); 80 81 const lldb_private::SymbolContext& 82 operator*() const; 83 84#endif 85 86 lldb_private::SymbolContext * 87 get() const; 88 89 SBSymbolContext (const lldb_private::SymbolContext *sc_ptr); 90 91 void 92 SetSymbolContext (const lldb_private::SymbolContext *sc_ptr); 93 94private: 95 std::auto_ptr<lldb_private::SymbolContext> m_opaque_ap; 96}; 97 98 99} // namespace lldb 100 101#endif // LLDB_SBSymbolContext_h_ 102