summaryrefslogtreecommitdiffstats
path: root/lldb/source
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source')
-rw-r--r--lldb/source/API/SBValue.cpp44
-rw-r--r--lldb/source/Core/ValueObject.cpp6
2 files changed, 50 insertions, 0 deletions
diff --git a/lldb/source/API/SBValue.cpp b/lldb/source/API/SBValue.cpp
index 6ef4c387258..c7ab54999ca 100644
--- a/lldb/source/API/SBValue.cpp
+++ b/lldb/source/API/SBValue.cpp
@@ -597,6 +597,50 @@ SBValue::GetChildMemberWithName (const char *name, lldb::DynamicValueType use_dy
}
lldb::SBValue
+SBValue::GetDynamicValue (lldb::DynamicValueType use_dynamic)
+{
+ if (m_opaque_sp)
+ {
+ if (m_opaque_sp->GetUpdatePoint().GetTargetSP())
+ {
+ Mutex::Locker api_locker (m_opaque_sp->GetUpdatePoint().GetTargetSP()->GetAPIMutex());
+ return SBValue (m_opaque_sp->GetDynamicValue(use_dynamic));
+ }
+ }
+
+ return SBValue();
+}
+
+lldb::SBValue
+SBValue::GetStaticValue ()
+{
+ if (m_opaque_sp)
+ {
+ if (m_opaque_sp->GetUpdatePoint().GetTargetSP())
+ {
+ Mutex::Locker api_locker (m_opaque_sp->GetUpdatePoint().GetTargetSP()->GetAPIMutex());
+ return SBValue(m_opaque_sp->GetStaticValue());
+ }
+ }
+
+ return SBValue();
+}
+
+bool
+SBValue::IsDynamic()
+{
+ if (m_opaque_sp)
+ {
+ if (m_opaque_sp->GetUpdatePoint().GetTargetSP())
+ {
+ Mutex::Locker api_locker (m_opaque_sp->GetUpdatePoint().GetTargetSP()->GetAPIMutex());
+ return m_opaque_sp->IsDynamic();
+ }
+ }
+ return false;
+}
+
+lldb::SBValue
SBValue::GetValueForExpressionPath(const char* expr_path)
{
lldb::ValueObjectSP child_sp;
diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp
index d643a5308b5..b4331144c7d 100644
--- a/lldb/source/Core/ValueObject.cpp
+++ b/lldb/source/Core/ValueObject.cpp
@@ -1920,6 +1920,12 @@ ValueObject::GetDynamicValue (DynamicValueType use_dynamic)
return ValueObjectSP();
}
+ValueObjectSP
+ValueObject::GetStaticValue()
+{
+ return GetSP();
+}
+
// GetDynamicValue() returns a NULL SharedPointer if the object is not dynamic
// or we do not really want a dynamic VO. this method instead returns this object
// itself when making it synthetic has no meaning. this makes it much simpler
OpenPOWER on IntegriCloud