LLDB mainline
|
A ValueObject that represents memory at a given address, viewed as some set lldb type. More...
#include <ValueObjectDynamicValue.h>
Protected Attributes | |
Address | m_address |
The variable that this value object is based upon. | |
TypeAndOrName | m_dynamic_type_info |
lldb::DynamicValueType | m_use_dynamic |
TypeImpl | m_type_impl |
![]() | |
ValueObject * | m_parent = nullptr |
The parent value object, or nullptr if this has no parent. | |
ValueObject * | m_root = nullptr |
The root of the hierarchy for this ValueObject (or nullptr if never calculated). | |
EvaluationPoint | m_update_point |
Stores both the stop id and the full context at which this value was last updated. | |
ConstString | m_name |
The name of this object. | |
DataExtractor | m_data |
A data extractor that can be used to extract the value. | |
Value | m_value |
Status | m_error |
An error object that can describe any errors that occur when updating values. | |
std::string | m_value_str |
Cached value string that will get cleared if/when the value is updated. | |
std::string | m_old_value_str |
Cached old value string from the last time the value was gotten. | |
std::string | m_location_str |
Cached location string that will get cleared if/when the value is updated. | |
std::string | m_summary_str |
Cached summary string that will get cleared if/when the value is updated. | |
std::string | m_object_desc_str |
Cached result of the "object printer". | |
CompilerType | m_override_type |
If the type of the value object should be overridden, the type to impose. | |
ValueObjectManager * | m_manager = nullptr |
This object is managed by the root object (any ValueObject that gets created without a parent.) The manager gets passed through all the generations of dependent objects, and will keep the whole cluster of objects alive as long as a shared pointer to any of them has been handed out. | |
ChildrenManager | m_children |
std::map< ConstString, ValueObject * > | m_synthetic_children |
ValueObject * | m_dynamic_value = nullptr |
ValueObject * | m_synthetic_value = nullptr |
ValueObject * | m_deref_valobj = nullptr |
lldb::ValueObjectSP | m_addr_of_valobj_sp |
We have to hold onto a shared pointer to this one because it is created as an independent ValueObjectConstResult, which isn't managed by us. | |
lldb::Format | m_format = lldb::eFormatDefault |
lldb::Format | m_last_format = lldb::eFormatDefault |
uint32_t | m_last_format_mgr_revision = 0 |
lldb::TypeSummaryImplSP | m_type_summary_sp |
lldb::TypeFormatImplSP | m_type_format_sp |
lldb::SyntheticChildrenSP | m_synthetic_children_sp |
ProcessModID | m_user_id_of_forced_summary |
AddressType | m_address_type_of_ptr_or_ref_children = eAddressTypeInvalid |
llvm::SmallVector< uint8_t, 16 > | m_value_checksum |
lldb::LanguageType | m_preferred_display_language = lldb::eLanguageTypeUnknown |
uint64_t | m_language_flags = 0 |
UserID | m_id |
Unique identifier for every value object. | |
struct lldb_private::ValueObject::Bitflags | m_flags |
Private Member Functions | |
ValueObjectDynamicValue (ValueObject &parent, lldb::DynamicValueType use_dynamic) | |
ValueObjectDynamicValue (const ValueObjectDynamicValue &)=delete | |
const ValueObjectDynamicValue & | operator= (const ValueObjectDynamicValue &)=delete |
Friends | |
class | ValueObject |
class | ValueObjectConstResult |
A ValueObject that represents memory at a given address, viewed as some set lldb type.
Definition at line 34 of file ValueObjectDynamicValue.h.
|
overridedefault |
|
private |
Definition at line 33 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::GetName(), and lldb_private::ValueObject::SetName().
|
privatedelete |
|
overridevirtual |
Should only be called by ValueObject::GetNumChildren().
Implements lldb_private::ValueObject.
Definition at line 88 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::GetCompilerType(), lldb_private::ValueObject::GetExecutionContextRef(), lldb_private::CompilerType::GetNumChildren(), lldb_private::ValueObject::GetNumChildren(), lldb_private::TypeAndOrName::HasType(), m_dynamic_type_info, lldb_private::ValueObject::m_parent, and lldb_private::ValueObject::UpdateValueIfNeeded().
|
inlineoverrideprotectedvirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 99 of file ValueObjectDynamicValue.h.
References lldb_private::eLazyBoolYes.
|
overridevirtual |
Implements lldb_private::ValueObject.
Definition at line 98 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::GetByteSize(), lldb_private::ValueObject::GetExecutionContextRef(), lldb_private::Value::GetValueByteSize(), lldb_private::TypeAndOrName::HasType(), m_dynamic_type_info, lldb_private::ValueObject::m_parent, lldb_private::ValueObject::m_value, and lldb_private::ValueObject::UpdateValueIfNeeded().
|
overrideprotectedvirtual |
Implements lldb_private::ValueObject.
Definition at line 40 of file ValueObjectDynamicValue.cpp.
References lldb_private::Value::GetCompilerType(), lldb_private::ValueObject::GetCompilerType(), lldb_private::TypeAndOrName::HasType(), m_dynamic_type_info, lldb_private::ValueObject::m_parent, lldb_private::ValueObject::m_value, and lldb_private::ValueObject::UpdateValueIfNeeded().
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 380 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::GetDeclaration(), and lldb_private::ValueObject::m_parent.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 77 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::GetCompilerType(), lldb_private::ValueObject::GetDisplayTypeName(), lldb_private::CompilerType::GetDisplayTypeName(), lldb_private::TypeAndOrName::GetName(), lldb_private::TypeAndOrName::HasName(), lldb_private::TypeAndOrName::HasType(), m_dynamic_type_info, lldb_private::ValueObject::m_parent, and lldb_private::ValueObject::UpdateValueIfNeeded().
|
inlineoverrideprotectedvirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 103 of file ValueObjectDynamicValue.h.
References m_use_dynamic.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 60 of file ValueObjectDynamicValue.h.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 387 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::GetLanguageFlags(), and lldb_private::ValueObject::m_parent.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 66 of file ValueObjectDynamicValue.h.
References lldb_private::ValueObject::GetParent(), and lldb_private::ValueObject::m_parent.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 62 of file ValueObjectDynamicValue.h.
References lldb_private::ValueObject::GetParent(), and lldb_private::ValueObject::m_parent.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 359 of file ValueObjectDynamicValue.cpp.
References lldb::eLanguageTypeUnknown, lldb_private::ValueObject::GetPreferredDisplayLanguage(), lldb_private::ValueObject::m_parent, and lldb_private::ValueObject::m_preferred_display_language.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 68 of file ValueObjectDynamicValue.cpp.
References lldb_private::TypeAndOrName::GetName(), lldb_private::ValueObject::GetQualifiedTypeName(), lldb_private::TypeAndOrName::HasName(), m_dynamic_type_info, lldb_private::ValueObject::m_parent, and lldb_private::ValueObject::UpdateValueIfNeeded().
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 70 of file ValueObjectDynamicValue.h.
References lldb_private::ValueObject::GetSP(), and lldb_private::ValueObject::m_parent.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 60 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::GetTypeImpl(), lldb_private::TypeImpl::IsValid(), lldb_private::ValueObject::m_parent, m_type_impl, and lldb_private::ValueObject::UpdateValueIfNeeded().
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 51 of file ValueObjectDynamicValue.cpp.
References lldb_private::TypeAndOrName::GetName(), lldb_private::ValueObject::GetTypeName(), lldb_private::TypeAndOrName::HasName(), m_dynamic_type_info, lldb_private::ValueObject::m_parent, and lldb_private::ValueObject::UpdateValueIfNeeded().
Referenced by UpdateValue().
|
overridevirtual |
Implements lldb_private::ValueObject.
Definition at line 107 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::GetValueType(), and lldb_private::ValueObject::m_parent.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 78 of file ValueObjectDynamicValue.h.
References lldb_private::ValueObject::GetVariable(), and lldb_private::ValueObject::m_parent.
|
inlineoverrideprotectedvirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 107 of file ValueObjectDynamicValue.h.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 54 of file ValueObjectDynamicValue.h.
References lldb_private::ValueObject::IsBaseClass(), and lldb_private::ValueObject::m_parent.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 52 of file ValueObjectDynamicValue.h.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 281 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::IsInScope(), and lldb_private::ValueObject::m_parent.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 368 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::IsSyntheticChildrenGenerated(), and lldb_private::ValueObject::m_parent.
|
privatedelete |
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 317 of file ValueObjectDynamicValue.cpp.
References error(), lldb_private::DataExtractor::GetAddress(), lldb_private::ValueObject::GetValueAsUnsigned(), lldb_private::ValueObject::m_parent, lldb_private::ValueObject::SetData(), lldb_private::ValueObject::SetNeedsUpdate(), UINT64_MAX, and lldb_private::ValueObject::UpdateValueIfNeeded().
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 393 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::m_parent, and lldb_private::ValueObject::SetLanguageFlags().
void ValueObjectDynamicValue::SetPreferredDisplayLanguage | ( | lldb::LanguageType | lang | ) |
Definition at line 352 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::m_parent, and lldb_private::ValueObject::SetPreferredDisplayLanguage().
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 374 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::m_parent, and lldb_private::ValueObject::SetSyntheticChildrenGenerated().
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 283 of file ValueObjectDynamicValue.cpp.
References error(), lldb_private::ValueObject::GetValueAsUnsigned(), lldb_private::ValueObject::m_parent, lldb_private::ValueObject::SetNeedsUpdate(), lldb_private::ValueObject::SetValueFromCString(), UINT64_MAX, and lldb_private::ValueObject::UpdateValueIfNeeded().
|
overrideprotectedvirtual |
Implements lldb_private::ValueObject.
Definition at line 111 of file ValueObjectDynamicValue.cpp.
References lldb_private::ValueObject::CanProvideValue(), lldb_private::TypeImpl::Clear(), lldb_private::TypeAndOrName::Clear(), lldb_private::Status::Clear(), lldb_private::ValueObject::ClearDynamicTypeInformation(), lldb::eLanguageTypeC, lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeObjC, lldb::eLanguageTypeUnknown, lldb::eNoDynamicValues, lldb_private::Status::Fail(), lldb_private::LanguageRuntime::FixUpDynamicType(), lldb_private::ArchSpec::GetAddressByteSize(), lldb_private::Target::GetArchitecture(), lldb_private::ArchSpec::GetByteOrder(), lldb_private::ValueObject::GetCompilerType(), lldb_private::TypeAndOrName::GetCompilerType(), lldb_private::LanguageRuntime::GetDynamicTypeAndAddress(), lldb_private::ValueObject::GetError(), lldb_private::ValueObject::GetExecutionContextRef(), lldb_private::Process::GetLanguageRuntime(), lldb_private::Address::GetLoadAddress(), lldb_private::GetLog(), lldb_private::ValueObject::GetModule(), lldb_private::ValueObject::GetName(), lldb_private::ValueObject::GetObjectRuntimeLanguage(), lldb_private::LanguageRuntime::GetPreferredLanguageRuntime(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::Value::GetScalar(), lldb_private::ExecutionContext::GetTargetPtr(), lldb_private::ValueObject::GetTargetSP(), GetTypeName(), lldb_private::Value::GetValueAsData(), lldb_private::Value::GetValueType(), lldb_private::TypeAndOrName::HasType(), lldb_private::Address::IsValid(), LLDB_LOGF, m_address, lldb_private::ValueObject::m_data, m_dynamic_type_info, lldb_private::ValueObject::m_error, lldb_private::ValueObject::m_parent, m_type_impl, lldb_private::ValueObject::m_update_point, m_use_dynamic, lldb_private::ValueObject::m_value, lldb_private::DataExtractor::SetAddressByteSize(), lldb_private::DataExtractor::SetByteOrder(), lldb_private::Value::SetCompilerType(), lldb_private::Status::SetErrorString(), lldb_private::ValueObject::EvaluationPoint::SetUpdated(), lldb_private::ValueObject::SetValueDidChange(), lldb_private::ValueObject::SetValueIsValid(), lldb_private::Value::SetValueType(), lldb_private::Status::Success(), lldb_private::Types, and lldb_private::ValueObject::UpdateValueIfNeeded().
|
friend |
Definition at line 117 of file ValueObjectDynamicValue.h.
|
friend |
Definition at line 118 of file ValueObjectDynamicValue.h.
|
protected |
The variable that this value object is based upon.
Definition at line 111 of file ValueObjectDynamicValue.h.
Referenced by UpdateValue().
|
protected |
Definition at line 112 of file ValueObjectDynamicValue.h.
Referenced by CalculateNumChildren(), GetByteSize(), GetCompilerTypeImpl(), GetDisplayTypeName(), GetQualifiedTypeName(), GetTypeName(), and UpdateValue().
|
protected |
Definition at line 114 of file ValueObjectDynamicValue.h.
Referenced by GetTypeImpl(), and UpdateValue().
|
protected |
Definition at line 113 of file ValueObjectDynamicValue.h.
Referenced by GetDynamicValueTypeImpl(), and UpdateValue().