summaryrefslogtreecommitdiffstats
path: root/lldb/source/API
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2011-12-08 19:44:08 +0000
committerJim Ingham <jingham@apple.com>2011-12-08 19:44:08 +0000
commit60dbabbaa706c4fffb879ce71a6e023670490c2c (patch)
tree14eee208213094ca6684521fb34615a9a523ff31 /lldb/source/API
parent6ccae15ef0b96b1b4db642020a249bb9cff204df (diff)
downloadbcm5719-llvm-60dbabbaa706c4fffb879ce71a6e023670490c2c.tar.gz
bcm5719-llvm-60dbabbaa706c4fffb879ce71a6e023670490c2c.zip
Add SBValue::GetDynamicValue and SBValue::GetStaticValue API's.
<rdar://problem/10545069> llvm-svn: 146173
Diffstat (limited to 'lldb/source/API')
-rw-r--r--lldb/source/API/SBValue.cpp44
1 files changed, 44 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;
OpenPOWER on IntegriCloud