ValueObjectMemory.h revision 47da810225d8674eb9158bcf5f1f5b847cbaeedf
1//===-- ValueObjectMemory.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 liblldb_ValueObjectMemory_h_ 11#define liblldb_ValueObjectMemory_h_ 12 13// C Includes 14// C++ Includes 15// Other libraries and framework includes 16// Project includes 17#include "lldb/Core/ValueObject.h" 18 19namespace lldb_private { 20 21//---------------------------------------------------------------------- 22// A ValueObject that represents memory at a given address, viewed as some 23// set lldb type. 24//---------------------------------------------------------------------- 25class ValueObjectMemory : public ValueObject 26{ 27public: 28 static lldb::ValueObjectSP 29 Create (ExecutionContextScope *exe_scope, 30 const char *name, 31 const Address &address, 32 lldb::TypeSP &type_sp); 33 34 virtual 35 ~ValueObjectMemory(); 36 37 virtual size_t 38 GetByteSize(); 39 40 virtual clang::ASTContext * 41 GetClangAST (); 42 43 virtual lldb::clang_type_t 44 GetClangType (); 45 46 virtual ConstString 47 GetTypeName(); 48 49 virtual uint32_t 50 CalculateNumChildren(); 51 52 virtual lldb::ValueType 53 GetValueType() const; 54 55 virtual bool 56 IsInScope (); 57 58protected: 59 virtual bool 60 UpdateValue (); 61 62 Address m_address; ///< The variable that this value object is based upon 63 lldb::TypeSP m_type_sp; 64 65private: 66 ValueObjectMemory (ExecutionContextScope *exe_scope, 67 const char *name, 68 const Address &address, 69 lldb::TypeSP &type_sp); 70 71 //------------------------------------------------------------------ 72 // For ValueObject only 73 //------------------------------------------------------------------ 74 DISALLOW_COPY_AND_ASSIGN (ValueObjectMemory); 75}; 76 77} // namespace lldb_private 78 79#endif // liblldb_ValueObjectMemory_h_ 80