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.cpp406
1 files changed, 255 insertions, 151 deletions
diff --git a/source/API/SBValue.cpp b/source/API/SBValue.cpp
index 4bd018352ff2..3a9621b1e3bc 100644
--- a/source/API/SBValue.cpp
+++ b/source/API/SBValue.cpp
@@ -58,7 +58,7 @@ public:
ValueImpl ()
{
}
-
+
ValueImpl (lldb::ValueObjectSP in_valobj_sp,
lldb::DynamicValueType use_dynamic,
bool use_synthetic,
@@ -71,7 +71,7 @@ public:
if (!m_name.IsEmpty() && m_valobj_sp)
m_valobj_sp->SetName(m_name);
}
-
+
ValueImpl (const ValueImpl& rhs) :
m_valobj_sp(rhs.m_valobj_sp),
m_use_dynamic(rhs.m_use_dynamic),
@@ -79,7 +79,7 @@ public:
m_name (rhs.m_name)
{
}
-
+
ValueImpl &
operator = (const ValueImpl &rhs)
{
@@ -92,7 +92,7 @@ public:
}
return *this;
}
-
+
bool
IsValid ()
{
@@ -115,13 +115,13 @@ public:
return false;
}
}
-
+
lldb::ValueObjectSP
GetRootSP ()
{
return m_valobj_sp;
}
-
+
lldb::ValueObjectSP
GetSP (Process::StopLocker &stop_locker, Mutex::Locker &api_locker, Error &error)
{
@@ -131,26 +131,27 @@ public:
error.SetErrorString("invalid value object");
return m_valobj_sp;
}
-
+
lldb::ValueObjectSP value_sp = m_valobj_sp;
-
+
Target *target = value_sp->GetTargetSP().get();
if (target)
api_locker.Lock(target->GetAPIMutex());
else
return ValueObjectSP();
-
+
ProcessSP process_sp(value_sp->GetProcessSP());
if (process_sp && !stop_locker.TryLock (&process_sp->GetRunLock()))
{
// We don't allow people to play around with ValueObject if the process is running.
// If you want to look at values, pause the process, then look.
if (log)
- log->Printf ("SBValue(%p)::GetSP() => error: process is running", value_sp.get());
+ log->Printf ("SBValue(%p)::GetSP() => error: process is running",
+ static_cast<void*>(value_sp.get()));
error.SetErrorString ("process must be stopped.");
return ValueObjectSP();
}
-
+
if (value_sp->GetDynamicValue(m_use_dynamic))
value_sp = value_sp->GetDynamicValue(m_use_dynamic);
if (value_sp->GetSyntheticValue(m_use_synthetic))
@@ -159,34 +160,34 @@ public:
error.SetErrorString("invalid value object");
if (!m_name.IsEmpty())
value_sp->SetName(m_name);
-
+
return value_sp;
}
-
+
void
SetUseDynamic (lldb::DynamicValueType use_dynamic)
{
m_use_dynamic = use_dynamic;
}
-
+
void
SetUseSynthetic (bool use_synthetic)
{
m_use_synthetic = use_synthetic;
}
-
+
lldb::DynamicValueType
GetUseDynamic ()
{
return m_use_dynamic;
}
-
+
bool
GetUseSynthetic ()
{
return m_use_synthetic;
}
-
+
// All the derived values that we would make from the m_valobj_sp will share
// the ExecutionContext with m_valobj_sp, so we don't need to do the calculations
// in GetSP to return the Target, Process, Thread or Frame. It is convenient to
@@ -199,7 +200,7 @@ public:
else
return TargetSP();
}
-
+
ProcessSP
GetProcessSP ()
{
@@ -208,7 +209,7 @@ public:
else
return ProcessSP();
}
-
+
ThreadSP
GetThreadSP ()
{
@@ -217,7 +218,7 @@ public:
else
return ThreadSP();
}
-
+
StackFrameSP
GetFrameSP ()
{
@@ -226,7 +227,7 @@ public:
else
return StackFrameSP();
}
-
+
private:
lldb::ValueObjectSP m_valobj_sp;
lldb::DynamicValueType m_use_dynamic;
@@ -337,16 +338,18 @@ SBValue::GetName()
lldb::ValueObjectSP value_sp(GetSP(locker));
if (value_sp)
name = value_sp->GetName().GetCString();
-
+
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
{
if (name)
- log->Printf ("SBValue(%p)::GetName () => \"%s\"", value_sp.get(), name);
+ log->Printf ("SBValue(%p)::GetName () => \"%s\"",
+ static_cast<void*>(value_sp.get()), name);
else
- log->Printf ("SBValue(%p)::GetName () => NULL", value_sp.get());
+ log->Printf ("SBValue(%p)::GetName () => NULL",
+ static_cast<void*>(value_sp.get()));
}
-
+
return name;
}
@@ -361,13 +364,40 @@ SBValue::GetTypeName ()
{
name = value_sp->GetQualifiedTypeName().GetCString();
}
+
+ if (log)
+ {
+ if (name)
+ log->Printf ("SBValue(%p)::GetTypeName () => \"%s\"",
+ static_cast<void*>(value_sp.get()), name);
+ else
+ log->Printf ("SBValue(%p)::GetTypeName () => NULL",
+ static_cast<void*>(value_sp.get()));
+ }
+
+ return name;
+}
+
+const char *
+SBValue::GetDisplayTypeName ()
+{
+ Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+ const char *name = NULL;
+ ValueLocker locker;
+ lldb::ValueObjectSP value_sp(GetSP(locker));
+ if (value_sp)
+ {
+ name = value_sp->GetDisplayTypeName().GetCString();
+ }
if (log)
{
if (name)
- log->Printf ("SBValue(%p)::GetTypeName () => \"%s\"", value_sp.get(), name);
+ log->Printf ("SBValue(%p)::GetTypeName () => \"%s\"",
+ static_cast<void*>(value_sp.get()), name);
else
- log->Printf ("SBValue(%p)::GetTypeName () => NULL", value_sp.get());
+ log->Printf ("SBValue(%p)::GetTypeName () => NULL",
+ static_cast<void*>(value_sp.get()));
}
return name;
@@ -378,17 +408,19 @@ SBValue::GetByteSize ()
{
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
size_t result = 0;
-
+
ValueLocker locker;
lldb::ValueObjectSP value_sp(GetSP(locker));
if (value_sp)
{
result = value_sp->GetByteSize();
}
-
+
if (log)
- log->Printf ("SBValue(%p)::GetByteSize () => %" PRIu64, value_sp.get(), (uint64_t)result);
-
+ log->Printf ("SBValue(%p)::GetByteSize () => %" PRIu64,
+ static_cast<void*>(value_sp.get()),
+ static_cast<uint64_t>(result));
+
return result;
}
@@ -396,18 +428,19 @@ bool
SBValue::IsInScope ()
{
bool result = false;
-
+
ValueLocker locker;
lldb::ValueObjectSP value_sp(GetSP(locker));
if (value_sp)
{
result = value_sp->IsInScope ();
}
-
+
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
- log->Printf ("SBValue(%p)::IsInScope () => %i", value_sp.get(), result);
-
+ log->Printf ("SBValue(%p)::IsInScope () => %i",
+ static_cast<void*>(value_sp.get()), result);
+
return result;
}
@@ -415,7 +448,7 @@ const char *
SBValue::GetValue ()
{
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
-
+
const char *cstr = NULL;
ValueLocker locker;
lldb::ValueObjectSP value_sp(GetSP(locker));
@@ -426,11 +459,13 @@ SBValue::GetValue ()
if (log)
{
if (cstr)
- log->Printf ("SBValue(%p)::GetValue() => \"%s\"", value_sp.get(), cstr);
+ log->Printf ("SBValue(%p)::GetValue() => \"%s\"",
+ static_cast<void*>(value_sp.get()), cstr);
else
- log->Printf ("SBValue(%p)::GetValue() => NULL", value_sp.get());
+ log->Printf ("SBValue(%p)::GetValue() => NULL",
+ static_cast<void*>(value_sp.get()));
}
-
+
return cstr;
}
@@ -442,20 +477,44 @@ SBValue::GetValueType ()
lldb::ValueObjectSP value_sp(GetSP(locker));
if (value_sp)
result = value_sp->GetValueType();
-
+
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
{
switch (result)
{
- case eValueTypeInvalid: log->Printf ("SBValue(%p)::GetValueType () => eValueTypeInvalid", value_sp.get()); break;
- case eValueTypeVariableGlobal: log->Printf ("SBValue(%p)::GetValueType () => eValueTypeVariableGlobal", value_sp.get()); break;
- case eValueTypeVariableStatic: log->Printf ("SBValue(%p)::GetValueType () => eValueTypeVariableStatic", value_sp.get()); break;
- case eValueTypeVariableArgument:log->Printf ("SBValue(%p)::GetValueType () => eValueTypeVariableArgument", value_sp.get()); break;
- case eValueTypeVariableLocal: log->Printf ("SBValue(%p)::GetValueType () => eValueTypeVariableLocal", value_sp.get()); break;
- case eValueTypeRegister: log->Printf ("SBValue(%p)::GetValueType () => eValueTypeRegister", value_sp.get()); break;
- case eValueTypeRegisterSet: log->Printf ("SBValue(%p)::GetValueType () => eValueTypeRegisterSet", value_sp.get()); break;
- case eValueTypeConstResult: log->Printf ("SBValue(%p)::GetValueType () => eValueTypeConstResult", value_sp.get()); break;
+ case eValueTypeInvalid:
+ log->Printf ("SBValue(%p)::GetValueType () => eValueTypeInvalid",
+ static_cast<void*>(value_sp.get()));
+ break;
+ case eValueTypeVariableGlobal:
+ log->Printf ("SBValue(%p)::GetValueType () => eValueTypeVariableGlobal",
+ static_cast<void*>(value_sp.get()));
+ break;
+ case eValueTypeVariableStatic:
+ log->Printf ("SBValue(%p)::GetValueType () => eValueTypeVariableStatic",
+ static_cast<void*>(value_sp.get()));
+ break;
+ case eValueTypeVariableArgument:
+ log->Printf ("SBValue(%p)::GetValueType () => eValueTypeVariableArgument",
+ static_cast<void*>(value_sp.get()));
+ break;
+ case eValueTypeVariableLocal:
+ log->Printf ("SBValue(%p)::GetValueType () => eValueTypeVariableLocal",
+ static_cast<void*>(value_sp.get()));
+ break;
+ case eValueTypeRegister:
+ log->Printf ("SBValue(%p)::GetValueType () => eValueTypeRegister",
+ static_cast<void*>(value_sp.get()));
+ break;
+ case eValueTypeRegisterSet:
+ log->Printf ("SBValue(%p)::GetValueType () => eValueTypeRegisterSet",
+ static_cast<void*>(value_sp.get()));
+ break;
+ case eValueTypeConstResult:
+ log->Printf ("SBValue(%p)::GetValueType () => eValueTypeConstResult",
+ static_cast<void*>(value_sp.get()));
+ break;
}
}
return result;
@@ -475,9 +534,11 @@ SBValue::GetObjectDescription ()
if (log)
{
if (cstr)
- log->Printf ("SBValue(%p)::GetObjectDescription() => \"%s\"", value_sp.get(), cstr);
+ log->Printf ("SBValue(%p)::GetObjectDescription() => \"%s\"",
+ static_cast<void*>(value_sp.get()), cstr);
else
- log->Printf ("SBValue(%p)::GetObjectDescription() => NULL", value_sp.get());
+ log->Printf ("SBValue(%p)::GetObjectDescription() => NULL",
+ static_cast<void*>(value_sp.get()));
}
return cstr;
}
@@ -498,9 +559,12 @@ SBValue::GetType()
if (log)
{
if (type_sp)
- log->Printf ("SBValue(%p)::GetType => SBType(%p)", value_sp.get(), type_sp.get());
+ log->Printf ("SBValue(%p)::GetType => SBType(%p)",
+ static_cast<void*>(value_sp.get()),
+ static_cast<void*>(type_sp.get()));
else
- log->Printf ("SBValue(%p)::GetType => NULL", value_sp.get());
+ log->Printf ("SBValue(%p)::GetType => NULL",
+ static_cast<void*>(value_sp.get()));
}
return sb_type;
}
@@ -517,8 +581,9 @@ SBValue::GetValueDidChange ()
result = value_sp->GetValueDidChange ();
}
if (log)
- log->Printf ("SBValue(%p)::GetValueDidChange() => %i", value_sp.get(), result);
-
+ log->Printf ("SBValue(%p)::GetValueDidChange() => %i",
+ static_cast<void*>(value_sp.get()), result);
+
return result;
}
@@ -537,9 +602,11 @@ SBValue::GetSummary ()
if (log)
{
if (cstr)
- log->Printf ("SBValue(%p)::GetSummary() => \"%s\"", value_sp.get(), cstr);
+ log->Printf ("SBValue(%p)::GetSummary() => \"%s\"",
+ static_cast<void*>(value_sp.get()), cstr);
else
- log->Printf ("SBValue(%p)::GetSummary() => NULL", value_sp.get());
+ log->Printf ("SBValue(%p)::GetSummary() => NULL",
+ static_cast<void*>(value_sp.get()));
}
return cstr;
}
@@ -559,9 +626,11 @@ SBValue::GetLocation ()
if (log)
{
if (cstr)
- log->Printf ("SBValue(%p)::GetLocation() => \"%s\"", value_sp.get(), cstr);
+ log->Printf ("SBValue(%p)::GetLocation() => \"%s\"",
+ static_cast<void*>(value_sp.get()), cstr);
else
- log->Printf ("SBValue(%p)::GetLocation() => NULL", value_sp.get());
+ log->Printf ("SBValue(%p)::GetLocation() => NULL",
+ static_cast<void*>(value_sp.get()));
}
return cstr;
}
@@ -587,10 +656,11 @@ SBValue::SetValueFromCString (const char *value_str, lldb::SBError& error)
}
else
error.SetErrorStringWithFormat ("Could not get value: %s", locker.GetError().AsCString());
-
+
if (log)
- log->Printf ("SBValue(%p)::SetValueFromCString(\"%s\") => %i", value_sp.get(), value_str, success);
-
+ log->Printf ("SBValue(%p)::SetValueFromCString(\"%s\") => %i",
+ static_cast<void*>(value_sp.get()), value_str, success);
+
return success;
}
@@ -698,11 +768,11 @@ SBValue::CreateChildAtOffset (const char *name, uint32_t offset, SBType type)
{
if (new_value_sp)
log->Printf ("SBValue(%p)::CreateChildAtOffset => \"%s\"",
- value_sp.get(),
+ static_cast<void*>(value_sp.get()),
new_value_sp->GetName().AsCString());
else
log->Printf ("SBValue(%p)::CreateChildAtOffset => NULL",
- value_sp.get());
+ static_cast<void*>(value_sp.get()));
}
return sb_value;
}
@@ -757,15 +827,11 @@ SBValue::CreateValueFromExpression (const char *name, const char *expression, SB
{
if (new_value_sp)
log->Printf ("SBValue(%p)::CreateValueFromExpression(name=\"%s\", expression=\"%s\") => SBValue (%p)",
- value_sp.get(),
- name,
- expression,
- new_value_sp.get());
+ static_cast<void*>(value_sp.get()), name, expression,
+ static_cast<void*>(new_value_sp.get()));
else
log->Printf ("SBValue(%p)::CreateValueFromExpression(name=\"%s\", expression=\"%s\") => NULL",
- value_sp.get(),
- name,
- expression);
+ static_cast<void*>(value_sp.get()), name, expression);
}
return sb_value;
}
@@ -784,7 +850,7 @@ SBValue::CreateValueFromAddress(const char* name, lldb::addr_t address, SBType s
if (pointer_ast_type)
{
lldb::DataBufferSP buffer(new lldb_private::DataBufferHeap(&address,sizeof(lldb::addr_t)));
-
+
ExecutionContext exe_ctx (value_sp->GetExecutionContextRef());
ValueObjectSP ptr_result_valobj_sp(ValueObjectConstResult::Create (exe_ctx.GetBestExecutionContextScope(),
pointer_ast_type,
@@ -792,7 +858,7 @@ SBValue::CreateValueFromAddress(const char* name, lldb::addr_t address, SBType s
buffer,
exe_ctx.GetByteOrder(),
exe_ctx.GetAddressByteSize()));
-
+
if (ptr_result_valobj_sp)
{
ptr_result_valobj_sp->GetValue().SetValueType(Value::eValueTypeLoadAddress);
@@ -808,9 +874,12 @@ SBValue::CreateValueFromAddress(const char* name, lldb::addr_t address, SBType s
if (log)
{
if (new_value_sp)
- log->Printf ("SBValue(%p)::CreateValueFromAddress => \"%s\"", value_sp.get(), new_value_sp->GetName().AsCString());
+ log->Printf ("SBValue(%p)::CreateValueFromAddress => \"%s\"",
+ static_cast<void*>(value_sp.get()),
+ new_value_sp->GetName().AsCString());
else
- log->Printf ("SBValue(%p)::CreateValueFromAddress => NULL", value_sp.get());
+ log->Printf ("SBValue(%p)::CreateValueFromAddress => NULL",
+ static_cast<void*>(value_sp.get()));
}
return sb_value;
}
@@ -825,7 +894,7 @@ SBValue::CreateValueFromData (const char* name, SBData data, SBType type)
if (value_sp)
{
ExecutionContext exe_ctx (value_sp->GetExecutionContextRef());
-
+
new_value_sp = ValueObjectConstResult::Create (exe_ctx.GetBestExecutionContextScope(),
type.m_opaque_sp->GetClangASTType(false),
ConstString(name),
@@ -838,9 +907,12 @@ SBValue::CreateValueFromData (const char* name, SBData data, SBType type)
if (log)
{
if (new_value_sp)
- log->Printf ("SBValue(%p)::CreateValueFromData => \"%s\"", value_sp.get(), new_value_sp->GetName().AsCString());
+ log->Printf ("SBValue(%p)::CreateValueFromData => \"%s\"",
+ static_cast<void*>(value_sp.get()),
+ new_value_sp->GetName().AsCString());
else
- log->Printf ("SBValue(%p)::CreateValueFromData => NULL", value_sp.get());
+ log->Printf ("SBValue(%p)::CreateValueFromData => NULL",
+ static_cast<void*>(value_sp.get()));
}
return sb_value;
}
@@ -865,7 +937,7 @@ SBValue::GetChildAtIndex (uint32_t idx, lldb::DynamicValueType use_dynamic, bool
{
lldb::ValueObjectSP child_sp;
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
-
+
ValueLocker locker;
lldb::ValueObjectSP value_sp(GetSP(locker));
if (value_sp)
@@ -884,12 +956,14 @@ SBValue::GetChildAtIndex (uint32_t idx, lldb::DynamicValueType use_dynamic, bool
}
}
}
-
+
SBValue sb_value;
sb_value.SetSP (child_sp, use_dynamic, GetPreferSyntheticValue());
if (log)
- log->Printf ("SBValue(%p)::GetChildAtIndex (%u) => SBValue(%p)", value_sp.get(), idx, value_sp.get());
-
+ log->Printf ("SBValue(%p)::GetChildAtIndex (%u) => SBValue(%p)",
+ static_cast<void*>(value_sp.get()), idx,
+ static_cast<void*>(value_sp.get()));
+
return sb_value;
}
@@ -907,9 +981,11 @@ SBValue::GetIndexOfChildWithName (const char *name)
if (log)
{
if (idx == UINT32_MAX)
- log->Printf ("SBValue(%p)::GetIndexOfChildWithName (name=\"%s\") => NOT FOUND", value_sp.get(), name);
+ log->Printf ("SBValue(%p)::GetIndexOfChildWithName (name=\"%s\") => NOT FOUND",
+ static_cast<void*>(value_sp.get()), name);
else
- log->Printf ("SBValue(%p)::GetIndexOfChildWithName (name=\"%s\") => %u", value_sp.get(), name, idx);
+ log->Printf ("SBValue(%p)::GetIndexOfChildWithName (name=\"%s\") => %u",
+ static_cast<void*>(value_sp.get()), name, idx);
}
return idx;
}
@@ -921,7 +997,7 @@ SBValue::GetChildMemberWithName (const char *name)
TargetSP target_sp;
if (m_opaque_sp)
target_sp = m_opaque_sp->GetTargetSP();
-
+
if (target_sp)
use_dynamic_value = target_sp->GetPreferDynamicValue();
return GetChildMemberWithName (name, use_dynamic_value);
@@ -932,22 +1008,24 @@ SBValue::GetChildMemberWithName (const char *name, lldb::DynamicValueType use_dy
{
lldb::ValueObjectSP child_sp;
const ConstString str_name (name);
-
+
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
-
+
ValueLocker locker;
lldb::ValueObjectSP value_sp(GetSP(locker));
if (value_sp)
{
child_sp = value_sp->GetChildMemberWithName (str_name, true);
}
-
+
SBValue sb_value;
sb_value.SetSP(child_sp, use_dynamic_value, GetPreferSyntheticValue());
-
+
if (log)
- log->Printf ("SBValue(%p)::GetChildMemberWithName (name=\"%s\") => SBValue(%p)", value_sp.get(), name, value_sp.get());
-
+ log->Printf ("SBValue(%p)::GetChildMemberWithName (name=\"%s\") => SBValue(%p)",
+ static_cast<void*>(value_sp.get()), name,
+ static_cast<void*>(value_sp.get()));
+
return sb_value;
}
@@ -1049,13 +1127,15 @@ SBValue::GetValueForExpressionPath(const char* expr_path)
// using default values for all the fancy options, just do it if you can
child_sp = value_sp->GetValueForExpressionPath(expr_path);
}
-
+
SBValue sb_value;
sb_value.SetSP(child_sp,GetPreferDynamicValue(),GetPreferSyntheticValue());
-
+
if (log)
- log->Printf ("SBValue(%p)::GetValueForExpressionPath (expr_path=\"%s\") => SBValue(%p)", value_sp.get(), expr_path, value_sp.get());
-
+ log->Printf ("SBValue(%p)::GetValueForExpressionPath (expr_path=\"%s\") => SBValue(%p)",
+ static_cast<void*>(value_sp.get()), expr_path,
+ static_cast<void*>(value_sp.get()));
+
return sb_value;
}
@@ -1134,9 +1214,10 @@ SBValue::MightHaveChildren ()
lldb::ValueObjectSP value_sp(GetSP(locker));
if (value_sp)
has_children = value_sp->MightHaveChildren();
-
+
if (log)
- log->Printf ("SBValue(%p)::MightHaveChildren() => %i", value_sp.get(), has_children);
+ log->Printf ("SBValue(%p)::MightHaveChildren() => %i",
+ static_cast<void*>(value_sp.get()), has_children);
return has_children;
}
@@ -1144,16 +1225,17 @@ uint32_t
SBValue::GetNumChildren ()
{
uint32_t num_children = 0;
-
+
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
ValueLocker locker;
lldb::ValueObjectSP value_sp(GetSP(locker));
if (value_sp)
num_children = value_sp->GetNumChildren();
-
+
if (log)
- log->Printf ("SBValue(%p)::GetNumChildren () => %u", value_sp.get(), num_children);
-
+ log->Printf ("SBValue(%p)::GetNumChildren () => %u",
+ static_cast<void*>(value_sp.get()), num_children);
+
return num_children;
}
@@ -1171,8 +1253,10 @@ SBValue::Dereference ()
}
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
- log->Printf ("SBValue(%p)::Dereference () => SBValue(%p)", value_sp.get(), value_sp.get());
-
+ log->Printf ("SBValue(%p)::Dereference () => SBValue(%p)",
+ static_cast<void*>(value_sp.get()),
+ static_cast<void*>(value_sp.get()));
+
return sb_value;
}
@@ -1180,17 +1264,17 @@ bool
SBValue::TypeIsPointerType ()
{
bool is_ptr_type = false;
-
+
ValueLocker locker;
lldb::ValueObjectSP value_sp(GetSP(locker));
if (value_sp)
is_ptr_type = value_sp->IsPointerType();
-
+
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
- log->Printf ("SBValue(%p)::TypeIsPointerType () => %i", value_sp.get(), is_ptr_type);
-
-
+ log->Printf ("SBValue(%p)::TypeIsPointerType () => %i",
+ static_cast<void*>(value_sp.get()), is_ptr_type);
+
return is_ptr_type;
}
@@ -1218,9 +1302,12 @@ SBValue::GetTarget()
if (log)
{
if (target_sp.get() == NULL)
- log->Printf ("SBValue(%p)::GetTarget () => NULL", m_opaque_sp.get());
+ log->Printf ("SBValue(%p)::GetTarget () => NULL",
+ static_cast<void*>(m_opaque_sp.get()));
else
- log->Printf ("SBValue(%p)::GetTarget () => %p", m_opaque_sp.get(), target_sp.get());
+ log->Printf ("SBValue(%p)::GetTarget () => %p",
+ static_cast<void*>(m_opaque_sp.get()),
+ static_cast<void*>(target_sp.get()));
}
return sb_target;
}
@@ -1239,9 +1326,12 @@ SBValue::GetProcess()
if (log)
{
if (process_sp.get() == NULL)
- log->Printf ("SBValue(%p)::GetProcess () => NULL", m_opaque_sp.get());
+ log->Printf ("SBValue(%p)::GetProcess () => NULL",
+ static_cast<void*>(m_opaque_sp.get()));
else
- log->Printf ("SBValue(%p)::GetProcess () => %p", m_opaque_sp.get(), process_sp.get());
+ log->Printf ("SBValue(%p)::GetProcess () => %p",
+ static_cast<void*>(m_opaque_sp.get()),
+ static_cast<void*>(process_sp.get()));
}
return sb_process;
}
@@ -1260,9 +1350,12 @@ SBValue::GetThread()
if (log)
{
if (thread_sp.get() == NULL)
- log->Printf ("SBValue(%p)::GetThread () => NULL", m_opaque_sp.get());
+ log->Printf ("SBValue(%p)::GetThread () => NULL",
+ static_cast<void*>(m_opaque_sp.get()));
else
- log->Printf ("SBValue(%p)::GetThread () => %p", m_opaque_sp.get(), thread_sp.get());
+ log->Printf ("SBValue(%p)::GetThread () => %p",
+ static_cast<void*>(m_opaque_sp.get()),
+ static_cast<void*>(thread_sp.get()));
}
return sb_thread;
}
@@ -1281,9 +1374,12 @@ SBValue::GetFrame()
if (log)
{
if (frame_sp.get() == NULL)
- log->Printf ("SBValue(%p)::GetFrame () => NULL", m_opaque_sp.get());
+ log->Printf ("SBValue(%p)::GetFrame () => NULL",
+ static_cast<void*>(m_opaque_sp.get()));
else
- log->Printf ("SBValue(%p)::GetFrame () => %p", m_opaque_sp.get(), frame_sp.get());
+ log->Printf ("SBValue(%p)::GetFrame () => %p",
+ static_cast<void*>(m_opaque_sp.get()),
+ static_cast<void*>(frame_sp.get()));
}
return sb_frame;
}
@@ -1450,8 +1546,10 @@ SBValue::AddressOf()
}
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
- log->Printf ("SBValue(%p)::AddressOf () => SBValue(%p)", value_sp.get(), value_sp.get());
-
+ log->Printf ("SBValue(%p)::AddressOf () => SBValue(%p)",
+ static_cast<void*>(value_sp.get()),
+ static_cast<void*>(value_sp.get()));
+
return sb_value;
}
@@ -1487,8 +1585,9 @@ SBValue::GetLoadAddress()
}
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
- log->Printf ("SBValue(%p)::GetLoadAddress () => (%" PRIu64 ")", value_sp.get(), value);
-
+ log->Printf ("SBValue(%p)::GetLoadAddress () => (%" PRIu64 ")",
+ static_cast<void*>(value_sp.get()), value);
+
return value;
}
@@ -1524,8 +1623,11 @@ SBValue::GetAddress()
}
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
- log->Printf ("SBValue(%p)::GetAddress () => (%s,%" PRIu64 ")", value_sp.get(),
- (addr.GetSection() ? addr.GetSection()->GetName().GetCString() : "NULL"),
+ log->Printf ("SBValue(%p)::GetAddress () => (%s,%" PRIu64 ")",
+ static_cast<void*>(value_sp.get()),
+ (addr.GetSection()
+ ? addr.GetSection()->GetName().GetCString()
+ : "NULL"),
addr.GetOffset());
return SBAddress(new Address(addr));
}
@@ -1551,11 +1653,9 @@ SBValue::GetPointeeData (uint32_t item_idx,
}
if (log)
log->Printf ("SBValue(%p)::GetPointeeData (%d, %d) => SBData(%p)",
- value_sp.get(),
- item_idx,
- item_count,
- sb_data.get());
-
+ static_cast<void*>(value_sp.get()), item_idx, item_count,
+ static_cast<void*>(sb_data.get()));
+
return sb_data;
}
@@ -1569,15 +1669,16 @@ SBValue::GetData ()
if (value_sp)
{
DataExtractorSP data_sp(new DataExtractor());
- value_sp->GetData(*data_sp);
- if (data_sp->GetByteSize() > 0)
+ Error error;
+ value_sp->GetData(*data_sp, error);
+ if (error.Success())
*sb_data = data_sp;
}
if (log)
log->Printf ("SBValue(%p)::GetData () => SBData(%p)",
- value_sp.get(),
- sb_data.get());
-
+ static_cast<void*>(value_sp.get()),
+ static_cast<void*>(sb_data.get()));
+
return sb_data;
}
@@ -1588,25 +1689,26 @@ SBValue::SetData (lldb::SBData &data, SBError &error)
ValueLocker locker;
lldb::ValueObjectSP value_sp(GetSP(locker));
bool ret = true;
-
+
if (value_sp)
{
DataExtractor *data_extractor = data.get();
-
+
if (!data_extractor)
{
if (log)
- log->Printf ("SBValue(%p)::SetData() => error: no data to set", value_sp.get());
-
+ log->Printf ("SBValue(%p)::SetData() => error: no data to set",
+ static_cast<void*>(value_sp.get()));
+
error.SetErrorString("No data to set");
ret = false;
}
else
{
Error set_error;
-
+
value_sp->SetData(*data_extractor, set_error);
-
+
if (!set_error.Success())
{
error.SetErrorStringWithFormat("Couldn't set data: %s", set_error.AsCString());
@@ -1619,12 +1721,11 @@ SBValue::SetData (lldb::SBData &data, SBError &error)
error.SetErrorStringWithFormat ("Couldn't set data: could not get SBValue: %s", locker.GetError().AsCString());
ret = false;
}
-
+
if (log)
log->Printf ("SBValue(%p)::SetData (%p) => %s",
- value_sp.get(),
- data.get(),
- ret ? "true" : "false");
+ static_cast<void*>(value_sp.get()),
+ static_cast<void*>(data.get()), ret ? "true" : "false");
return ret;
}
@@ -1647,7 +1748,7 @@ lldb::SBWatchpoint
SBValue::Watch (bool resolve_location, bool read, bool write, SBError &error)
{
SBWatchpoint sb_watchpoint;
-
+
// If the SBValue is not valid, there's no point in even trying to watch it.
ValueLocker locker;
lldb::ValueObjectSP value_sp(GetSP(locker));
@@ -1657,29 +1758,29 @@ SBValue::Watch (bool resolve_location, bool read, bool write, SBError &error)
// Read and Write cannot both be false.
if (!read && !write)
return sb_watchpoint;
-
+
// If the value is not in scope, don't try and watch and invalid value
if (!IsInScope())
return sb_watchpoint;
-
+
addr_t addr = GetLoadAddress();
if (addr == LLDB_INVALID_ADDRESS)
return sb_watchpoint;
size_t byte_size = GetByteSize();
if (byte_size == 0)
return sb_watchpoint;
-
+
uint32_t watch_type = 0;
if (read)
watch_type |= LLDB_WATCH_TYPE_READ;
if (write)
watch_type |= LLDB_WATCH_TYPE_WRITE;
-
+
Error rc;
ClangASTType type (value_sp->GetClangType());
WatchpointSP watchpoint_sp = target_sp->CreateWatchpoint(addr, byte_size, &type, watch_type, rc);
error.SetError(rc);
-
+
if (watchpoint_sp)
{
sb_watchpoint.SetSP (watchpoint_sp);
@@ -1700,18 +1801,21 @@ SBValue::Watch (bool resolve_location, bool read, bool write, SBError &error)
{
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
- log->Printf ("SBValue(%p)::Watch() => error getting SBValue: %s", value_sp.get(), locker.GetError().AsCString());
-
+ log->Printf ("SBValue(%p)::Watch() => error getting SBValue: %s",
+ static_cast<void*>(value_sp.get()),
+ locker.GetError().AsCString());
+
error.SetErrorStringWithFormat("could not get SBValue: %s", locker.GetError().AsCString());
}
else
{
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
- log->Printf ("SBValue(%p)::Watch() => error getting SBValue: no target", value_sp.get());
+ log->Printf ("SBValue(%p)::Watch() => error getting SBValue: no target",
+ static_cast<void*>(value_sp.get()));
error.SetErrorString("could not set watchpoint, a target is required");
}
-
+
return sb_watchpoint;
}