aboutsummaryrefslogtreecommitdiff
path: root/source/API/SBValue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/API/SBValue.cpp')
-rw-r--r--source/API/SBValue.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/source/API/SBValue.cpp b/source/API/SBValue.cpp
index e9d970baf..e2fdffab5 100644
--- a/source/API/SBValue.cpp
+++ b/source/API/SBValue.cpp
@@ -8,6 +8,7 @@
//===----------------------------------------------------------------------===//
#include "lldb/API/SBValue.h"
+#include "lldb/API/SBStream.h"
#include "lldb/Core/DataExtractor.h"
#include "lldb/Core/Module.h"
@@ -268,3 +269,35 @@ SBValue::operator*() const
{
return m_opaque_sp;
}
+
+bool
+SBValue::GetDescription (SBStream &description)
+{
+ if (m_opaque_sp)
+ {
+ const char *name = GetName();
+ const char *type_name = GetTypeName ();
+ size_t byte_size = GetByteSize ();
+ uint32_t num_children = GetNumChildren ();
+ bool is_stale = ValueIsStale ();
+ description.Printf ("name: '%s', type: %s, size: %d", (name != NULL ? name : "<unknown name>"),
+ (type_name != NULL ? type_name : "<unknown type name>"), (int) byte_size);
+ if (num_children > 0)
+ description.Printf (", num_children: %d", num_children);
+
+ if (is_stale)
+ description.Printf (" [value is stale]");
+ }
+ else
+ description.Printf ("No value");
+
+ return true;
+}
+
+PyObject *
+SBValue::__repr__ ()
+{
+ SBStream description;
+ GetDescription (description);
+ return PyString_FromString (description.GetData());
+}