LLDB mainline
|
A child of another ValueObject. More...
#include <ValueObjectChild.h>
Protected Member Functions | |
bool | UpdateValue () override |
LazyBool | CanUpdateWithInvalidExecutionContext () override |
CompilerType | GetCompilerTypeImpl () override |
ValueObjectChild (ValueObject &parent, const CompilerType &compiler_type, ConstString name, uint64_t byte_size, int32_t byte_offset, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, bool is_base_class, bool is_deref_of_parent, AddressType child_ptr_or_ref_addr_type, uint64_t language_flags) | |
ValueObjectChild (const ValueObjectChild &)=delete | |
const ValueObjectChild & | operator= (const ValueObjectChild &)=delete |
![]() | |
ValueObject (ExecutionContextScope *exe_scope, ValueObjectManager &manager, AddressType child_ptr_or_ref_addr_type=eAddressTypeLoad) | |
Use this constructor to create a "root variable object". | |
ValueObject (ValueObject &parent) | |
Use this constructor to create a ValueObject owned by another ValueObject. | |
ValueObjectManager * | GetManager () |
virtual bool | UpdateValue ()=0 |
virtual LazyBool | CanUpdateWithInvalidExecutionContext () |
virtual void | CalculateDynamicValue (lldb::DynamicValueType use_dynamic) |
virtual lldb::DynamicValueType | GetDynamicValueTypeImpl () |
virtual bool | HasDynamicValueTypeInfo () |
virtual void | CalculateSyntheticValue () |
virtual ValueObject * | CreateChildAtIndex (size_t idx, bool synthetic_array_member, int32_t synthetic_index) |
Should only be called by ValueObject::GetChildAtIndex(). | |
virtual size_t | CalculateNumChildren (uint32_t max=UINT32_MAX)=0 |
Should only be called by ValueObject::GetNumChildren(). | |
void | SetNumChildren (size_t num_children) |
void | SetValueDidChange (bool value_changed) |
void | SetValueIsValid (bool valid) |
void | ClearUserVisibleData (uint32_t items=ValueObject::eClearUserVisibleDataItemsAllStrings) |
void | AddSyntheticChild (ConstString key, ValueObject *valobj) |
DataExtractor & | GetDataExtractor () |
void | ClearDynamicTypeInformation () |
virtual CompilerType | GetCompilerTypeImpl ()=0 |
const char * | GetLocationAsCStringImpl (const Value &value, const DataExtractor &data) |
bool | IsChecksumEmpty () |
void | SetPreferredDisplayLanguageIfNeeded (lldb::LanguageType) |
virtual void | DoUpdateChildrenAddressType (ValueObject &valobj) |
Protected Attributes | |
CompilerType | m_compiler_type |
ConstString | m_type_name |
uint64_t | m_byte_size |
int32_t | m_byte_offset |
uint8_t | m_bitfield_bit_size |
uint8_t | m_bitfield_bit_offset |
bool | m_is_base_class |
bool | m_is_deref_of_parent |
std::optional< LazyBool > | m_can_update_with_invalid_exe_ctx |
![]() | |
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 |
Friends | |
class | ValueObject |
class | ValueObjectConstResult |
class | ValueObjectConstResultImpl |
A child of another ValueObject.
Definition at line 28 of file ValueObjectChild.h.
|
overridedefault |
|
protected |
Definition at line 29 of file ValueObjectChild.cpp.
References lldb_private::ValueObject::m_name, lldb_private::ValueObject::SetAddressTypeOfChildren(), and lldb_private::ValueObject::SetLanguageFlags().
|
protecteddelete |
|
overridevirtual |
Should only be called by ValueObject::GetNumChildren().
Implements lldb_private::ValueObject.
Definition at line 52 of file ValueObjectChild.cpp.
References lldb_private::ValueObject::GetCompilerType(), lldb_private::ValueObject::GetExecutionContextRef(), and lldb_private::CompilerType::GetNumChildren().
|
overrideprotectedvirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 84 of file ValueObjectChild.cpp.
References lldb_private::ValueObject::CanUpdateWithInvalidExecutionContext(), lldb_private::eLazyBoolCalculate, lldb_private::ValueObject::FollowParentChain(), m_can_update_with_invalid_exe_ctx, and lldb_private::ValueObject::m_parent.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 38 of file ValueObjectChild.h.
References m_bitfield_bit_offset.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 36 of file ValueObjectChild.h.
References m_bitfield_bit_size.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 34 of file ValueObjectChild.h.
References m_byte_offset.
|
inlineoverridevirtual |
Implements lldb_private::ValueObject.
Definition at line 32 of file ValueObjectChild.h.
References m_byte_size.
|
inlineoverrideprotectedvirtual |
Implements lldb_private::ValueObject.
Definition at line 61 of file ValueObjectChild.h.
References m_compiler_type.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 78 of file ValueObjectChild.cpp.
References AdjustForBitfieldness(), lldb_private::ValueObject::GetCompilerType(), lldb_private::CompilerType::GetDisplayTypeName(), and m_bitfield_bit_size.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 72 of file ValueObjectChild.cpp.
References AdjustForBitfieldness(), lldb_private::ValueObject::GetCompilerType(), lldb_private::CompilerType::GetTypeName(), and m_bitfield_bit_size.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 64 of file ValueObjectChild.cpp.
References AdjustForBitfieldness(), lldb_private::ValueObject::GetCompilerType(), lldb_private::CompilerType::GetTypeName(), lldb_private::ConstString::IsEmpty(), m_bitfield_bit_size, and m_type_name.
|
overridevirtual |
Implements lldb_private::ValueObject.
Definition at line 48 of file ValueObjectChild.cpp.
References lldb_private::ValueObject::GetValueType(), and lldb_private::ValueObject::m_parent.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 52 of file ValueObjectChild.h.
References m_is_base_class.
|
inlineoverridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 54 of file ValueObjectChild.h.
References m_is_deref_of_parent.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 219 of file ValueObjectChild.cpp.
References lldb_private::ValueObject::GetRoot(), and lldb_private::ValueObject::IsInScope().
|
protecteddelete |
|
overrideprotectedvirtual |
Implements lldb_private::ValueObject.
Definition at line 101 of file ValueObjectChild.cpp.
References lldb_private::Flags::AnySet(), lldb_private::Status::AsCString(), lldb_private::Status::Clear(), lldb_private::eAddressTypeFile, lldb_private::eAddressTypeHost, lldb_private::eAddressTypeInvalid, lldb_private::eAddressTypeLoad, lldb_private::Scalar::ExtractBitfield(), lldb_private::Value::FileAddress, lldb_private::ValueObject::GetAddressTypeOfChildren(), lldb_private::ExecutionContext::GetBestExecutionContextScope(), lldb_private::ValueObject::GetCompilerType(), lldb_private::ValueObject::GetError(), lldb_private::ValueObject::GetExecutionContextRef(), lldb_private::ValueObject::GetModule(), lldb_private::ValueObject::GetPointerValue(), lldb_private::ValueObject::GetProcessSP(), lldb_private::Value::GetScalar(), lldb_private::ValueObject::GetTypeInfo(), lldb_private::CompilerType::GetTypeInfo(), lldb_private::ValueObject::GetValue(), lldb_private::Value::GetValueAsData(), lldb_private::Value::GetValueType(), lldb_private::Value::HostAddress, lldb_private::Value::Invalid, LLDB_INVALID_ADDRESS, lldb_private::Value::LoadAddress, m_bitfield_bit_offset, m_bitfield_bit_size, m_byte_offset, m_byte_size, lldb_private::ValueObject::m_data, lldb_private::ValueObject::m_error, m_is_base_class, lldb_private::ValueObject::m_parent, lldb_private::ValueObject::m_value, lldb_private::Value::Scalar, lldb_private::Value::SetCompilerType(), lldb_private::Status::SetErrorString(), lldb_private::Status::SetErrorStringWithFormat(), lldb_private::ValueObject::SetValueIsValid(), lldb_private::Value::SetValueType(), lldb_private::CompilerType::ShouldTreatScalarValueAsAddress(), lldb_private::Status::Success(), lldb_private::Scalar::ULongLong(), and lldb_private::ValueObject::UpdateValueIfNeeded().
|
friend |
Definition at line 73 of file ValueObjectChild.h.
|
friend |
Definition at line 74 of file ValueObjectChild.h.
|
friend |
Definition at line 75 of file ValueObjectChild.h.
|
protected |
Definition at line 68 of file ValueObjectChild.h.
Referenced by GetBitfieldBitOffset(), and UpdateValue().
|
protected |
Definition at line 67 of file ValueObjectChild.h.
Referenced by GetBitfieldBitSize(), GetDisplayTypeName(), GetQualifiedTypeName(), GetTypeName(), and UpdateValue().
|
protected |
Definition at line 66 of file ValueObjectChild.h.
Referenced by GetByteOffset(), and UpdateValue().
|
protected |
Definition at line 65 of file ValueObjectChild.h.
Referenced by GetByteSize(), and UpdateValue().
|
protected |
Definition at line 71 of file ValueObjectChild.h.
Referenced by CanUpdateWithInvalidExecutionContext().
|
protected |
Definition at line 63 of file ValueObjectChild.h.
Referenced by GetCompilerTypeImpl().
|
protected |
Definition at line 69 of file ValueObjectChild.h.
Referenced by IsBaseClass(), and UpdateValue().
|
protected |
Definition at line 70 of file ValueObjectChild.h.
Referenced by IsDereferenceOfParent().
|
protected |
Definition at line 64 of file ValueObjectChild.h.
Referenced by GetTypeName().