1 //===-- ValueObjectVariable.h -----------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_ValueObjectVariable_h_
11 #define liblldb_ValueObjectVariable_h_
15 // Other libraries and framework includes
17 #include "lldb/Core/ValueObject.h"
19 namespace lldb_private {
21 //----------------------------------------------------------------------
22 // A ValueObject that contains a root variable that may or may not
24 //----------------------------------------------------------------------
25 class ValueObjectVariable : public ValueObject
28 static lldb::ValueObjectSP
29 Create (ExecutionContextScope *exe_scope, const lldb::VariableSP &var_sp);
32 ~ValueObjectVariable();
41 GetQualifiedTypeName();
44 CalculateNumChildren();
46 virtual lldb::ValueType
52 virtual lldb::ModuleSP
55 virtual SymbolContextScope *
56 GetSymbolContextScope();
59 GetDeclaration (Declaration &decl);
62 GetLocationAsCString ();
65 SetValueFromCString (const char *value_str, Error& error);
68 SetData (DataExtractor &data, Error &error);
77 lldb::VariableSP m_variable_sp; ///< The variable that this value object is based upon
78 Value m_resolved_value; ///< The value that DWARFExpression resolves this variable to before we patch it up
81 ValueObjectVariable (ExecutionContextScope *exe_scope, const lldb::VariableSP &var_sp);
82 //------------------------------------------------------------------
83 // For ValueObject only
84 //------------------------------------------------------------------
85 DISALLOW_COPY_AND_ASSIGN (ValueObjectVariable);
88 } // namespace lldb_private
90 #endif // liblldb_ValueObjectVariable_h_