diff options
Diffstat (limited to 'lldb/source')
-rw-r--r-- | lldb/source/API/SBValue.cpp | 44 | ||||
-rw-r--r-- | lldb/source/Core/ValueObject.cpp | 6 |
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 |