diff options
Diffstat (limited to 'source/API/SBValue.cpp')
-rw-r--r-- | source/API/SBValue.cpp | 33 |
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()); +} |