SBSymbolContext.h revision 102b2c2681c9a830afe25bfea35557421905e42c
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 const lldb::SBSymbolContext & 36 operator = (const lldb::SBSymbolContext &rhs); 37 38 lldb::SBModule GetModule (); 39 lldb::SBCompileUnit GetCompileUnit (); 40 lldb::SBFunction GetFunction (); 41 lldb::SBBlock GetBlock (); 42 lldb::SBLineEntry GetLineEntry (); 43 lldb::SBSymbol GetSymbol (); 44 45 void SetModule (lldb::SBModule module); 46 void SetCompileUnit (lldb::SBCompileUnit compile_unit); 47 void SetFunction (lldb::SBFunction function); 48 void SetBlock (lldb::SBBlock block); 49 void SetLineEntry (lldb::SBLineEntry line_entry); 50 void SetSymbol (lldb::SBSymbol symbol); 51 52 SBSymbolContext 53 GetParentOfInlinedScope (const SBAddress &curr_frame_pc, 54 SBAddress &parent_frame_addr) const; 55 56 bool 57 GetDescription (lldb::SBStream &description); 58 59protected: 60 friend class SBAddress; 61 friend class SBFrame; 62 friend class SBModule; 63 friend class SBThread; 64 friend class SBTarget; 65 friend class SBSymbolContextList; 66 67 lldb_private::SymbolContext* 68 operator->() const; 69 70 lldb_private::SymbolContext& 71 operator*(); 72 73 lldb_private::SymbolContext& 74 ref(); 75 76 const lldb_private::SymbolContext& 77 operator*() const; 78 79 lldb_private::SymbolContext * 80 get() const; 81 82 SBSymbolContext (const lldb_private::SymbolContext *sc_ptr); 83 84 void 85 SetSymbolContext (const lldb_private::SymbolContext *sc_ptr); 86 87private: 88 std::unique_ptr<lldb_private::SymbolContext> m_opaque_ap; 89}; 90 91 92} // namespace lldb 93 94#endif // LLDB_SBSymbolContext_h_ 95