SBBlock.h revision 538eb82a89a68dbc57251915080bd5152b333978
1//===-- SBBlock.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_SBBlock_h_ 11#define LLDB_SBBlock_h_ 12 13#include "lldb/API/SBDefines.h" 14 15namespace lldb { 16 17class SBBlock 18{ 19public: 20 21 SBBlock (); 22 23 SBBlock (const lldb::SBBlock &rhs); 24 25 ~SBBlock (); 26 27#ifndef SWIG 28 const lldb::SBBlock & 29 operator = (const lldb::SBBlock &rhs); 30#endif 31 32 bool 33 IsInlined () const; 34 35 bool 36 IsValid () const; 37 38 const char * 39 GetInlinedName () const; 40 41 lldb::SBFileSpec 42 GetInlinedCallSiteFile () const; 43 44 uint32_t 45 GetInlinedCallSiteLine () const; 46 47 uint32_t 48 GetInlinedCallSiteColumn () const; 49 50 lldb::SBBlock 51 GetParent (); 52 53 lldb::SBBlock 54 GetSibling (); 55 56 lldb::SBBlock 57 GetFirstChild (); 58 59 bool 60 GetDescription (lldb::SBStream &description); 61 62private: 63 friend class SBFrame; 64 friend class SBSymbolContext; 65 66#ifndef SWIG 67 68 const lldb_private::Block * 69 get () const; 70 71 SBBlock (lldb_private::Block *lldb_object_ptr); 72 73 void 74 AppendVariables (bool can_create, bool get_parent_variables, lldb_private::VariableList *var_list); 75 76#endif 77 78 lldb_private::Block *m_opaque_ptr; 79}; 80 81 82} // namespace lldb 83 84#endif // LLDB_SBBlock_h_ 85