summaryrefslogtreecommitdiffstats
path: root/lldb/include/lldb/API/SBValue.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/include/lldb/API/SBValue.h')
-rw-r--r--lldb/include/lldb/API/SBValue.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/lldb/include/lldb/API/SBValue.h b/lldb/include/lldb/API/SBValue.h
new file mode 100644
index 00000000000..395ca00a4f8
--- /dev/null
+++ b/lldb/include/lldb/API/SBValue.h
@@ -0,0 +1,126 @@
+//===-- SBValue.h -----------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_SBValue_h_
+#define LLDB_SBValue_h_
+
+#include <LLDB/SBDefines.h>
+
+class lldb_private::Variable;
+class lldb_private::ValueObject;
+class lldb_private::ExecutionContext;
+
+namespace lldb {
+
+class SBValue
+{
+public:
+ SBValue ();
+
+ ~SBValue ();
+
+ bool
+ IsValid() const;
+
+ void
+ Print (FILE *out_file, lldb::SBFrame *frame, bool print_type, bool print_value);
+
+ const char *
+ GetName();
+
+ const char *
+ GetTypeName ();
+
+ size_t
+ GetByteSize ();
+
+ bool
+ IsInScope (const lldb::SBFrame &frame);
+
+ const char *
+ GetValue (const lldb::SBFrame &frame);
+
+ bool
+ GetValueDidChange ();
+
+ const char *
+ GetSummary (const lldb::SBFrame &frame);
+
+ const char *
+ GetLocation (const lldb::SBFrame &frame);
+
+ bool
+ SetValueFromCString (const lldb::SBFrame &frame, const char *value_str);
+
+ lldb::SBValue
+ GetChildAtIndex (uint32_t idx);
+
+ // Matches children of this object only and will match base classes and
+ // member names if this is a clang typed object.
+ uint32_t
+ GetIndexOfChildWithName (const char *name);
+
+ // Matches child members of this object and child members of any base
+ // classes.
+ lldb::SBValue
+ GetChildMemberWithName (const char *name);
+
+ uint32_t
+ GetNumChildren ();
+
+ bool
+ ValueIsStale ();
+
+ void *
+ GetOpaqueType();
+
+ //void
+ //DumpType ();
+
+ lldb::SBValue
+ Dereference ();
+
+ bool
+ TypeIsPtrType ();
+
+
+protected:
+ friend class SBValueList;
+ friend class SBFrame;
+
+ SBValue (const lldb::ValueObjectSP &value_sp);
+
+#ifndef SWIG
+
+ // Mimic shared pointer...
+ lldb_private::ValueObject *
+ get() const;
+
+ lldb_private::ValueObject *
+ operator->() const;
+
+ lldb::ValueObjectSP &
+ operator*();
+
+ const lldb::ValueObjectSP &
+ operator*() const;
+
+#endif
+
+private:
+
+ lldb_private::ExecutionContext
+ GetCurrentExecutionContext ();
+
+ lldb::ValueObjectSP m_lldb_object_sp;
+};
+
+} // namespace lldb
+
+#endif // LLDB_SBValue_h_
OpenPOWER on IntegriCloud