LLDB mainline
|
A ValueObject that represents memory at a given address, viewed as some set lldb type. More...
#include <ValueObjectMemory.h>
Static Public Member Functions | |
static lldb::ValueObjectSP | Create (ExecutionContextScope *exe_scope, llvm::StringRef name, const Address &address, lldb::TypeSP &type_sp) |
static lldb::ValueObjectSP | Create (ExecutionContextScope *exe_scope, llvm::StringRef name, const Address &address, const CompilerType &ast_type) |
![]() | |
static lldb::ValueObjectSP | CreateValueObjectFromExpression (llvm::StringRef name, llvm::StringRef expression, const ExecutionContext &exe_ctx) |
static lldb::ValueObjectSP | CreateValueObjectFromExpression (llvm::StringRef name, llvm::StringRef expression, const ExecutionContext &exe_ctx, const EvaluateExpressionOptions &options) |
static lldb::ValueObjectSP | CreateValueObjectFromAddress (llvm::StringRef name, uint64_t address, const ExecutionContext &exe_ctx, CompilerType type) |
static lldb::ValueObjectSP | CreateValueObjectFromData (llvm::StringRef name, const DataExtractor &data, const ExecutionContext &exe_ctx, CompilerType type) |
Protected Attributes | |
Address | m_address |
The variable that this value object is based upon. | |
lldb::TypeSP | m_type_sp |
CompilerType | m_compiler_type |
![]() | |
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 | |
ValueObjectMemory (ExecutionContextScope *exe_scope, ValueObjectManager &manager, llvm::StringRef name, const Address &address, lldb::TypeSP &type_sp) | |
ValueObjectMemory (ExecutionContextScope *exe_scope, ValueObjectManager &manager, llvm::StringRef name, const Address &address, const CompilerType &ast_type) | |
ValueObjectMemory (const ValueObjectMemory &)=delete | |
const ValueObjectMemory & | operator= (const ValueObjectMemory &)=delete |
A ValueObject that represents memory at a given address, viewed as some set lldb type.
Definition at line 30 of file ValueObjectMemory.h.
|
overridedefault |
|
private |
Definition at line 51 of file ValueObjectMemory.cpp.
References lldb_private::Value::FileAddress, lldb_private::Address::GetFileAddress(), lldb_private::Address::GetLoadAddress(), lldb_private::Address::GetOffset(), lldb_private::Value::GetScalar(), lldb_private::ValueObject::GetTargetSP(), LLDB_INVALID_ADDRESS, lldb_private::Value::LLDBType, lldb_private::Value::LoadAddress, m_address, m_type_sp, lldb_private::ValueObject::m_value, lldb_private::Value::Scalar, lldb_private::Value::SetContext(), lldb_private::ValueObject::SetName(), and lldb_private::Value::SetValueType().
|
private |
Definition at line 79 of file ValueObjectMemory.cpp.
References lldb_private::Value::FileAddress, lldb_private::Address::GetFileAddress(), lldb_private::Address::GetLoadAddress(), lldb_private::Address::GetOffset(), lldb_private::Value::GetScalar(), lldb_private::ValueObject::GetTargetSP(), lldb_private::CompilerType::IsValid(), LLDB_INVALID_ADDRESS, lldb_private::Value::LoadAddress, m_address, m_compiler_type, lldb_private::ValueObject::m_value, lldb_private::Value::Scalar, lldb_private::Value::SetCompilerType(), lldb_private::ValueObject::SetName(), and lldb_private::Value::SetValueType().
|
privatedelete |
|
overridevirtual |
Should only be called by ValueObject::GetNumChildren().
Implements lldb_private::ValueObject.
Definition at line 129 of file ValueObjectMemory.cpp.
References lldb_private::ValueObject::GetExecutionContextRef(), lldb_private::CompilerType::GetNumChildren(), m_compiler_type, and m_type_sp.
|
static |
Definition at line 41 of file ValueObjectMemory.cpp.
References lldb_private::ClusterManager< T >::Create().
|
static |
Definition at line 32 of file ValueObjectMemory.cpp.
References lldb_private::ClusterManager< T >::Create().
Referenced by lldb_private::Watchpoint::CaptureWatchedValue(), lldb_private::ValueObject::CastPointerType(), CommandObjectMemoryRead::DoExecute(), ABISysV_mips::GetReturnValueObjectImpl(), ABISysV_mips64::GetReturnValueObjectImpl(), ABISysV_ppc::GetReturnValueObjectImpl(), ABISysV_s390x::GetReturnValueObjectImpl(), ABISysV_i386::GetReturnValueObjectImpl(), ABISysV_x86_64::GetReturnValueObjectImpl(), ABIWindows_x86_64::GetReturnValueObjectImpl(), ABISysV_i386::GetReturnValueObjectSimple(), lldb_private::StackFrame::GuessValueForAddress(), and lldb_private::Watchpoint::WatchedValueReportable().
|
overridevirtual |
Implements lldb_private::ValueObject.
Definition at line 142 of file ValueObjectMemory.cpp.
References lldb_private::ExecutionContext::GetBestExecutionContextScope(), lldb_private::CompilerType::GetByteSize(), lldb_private::ValueObject::GetExecutionContextRef(), m_compiler_type, and m_type_sp.
|
overrideprotectedvirtual |
Implements lldb_private::ValueObject.
Definition at line 111 of file ValueObjectMemory.cpp.
References m_compiler_type, and m_type_sp.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 123 of file ValueObjectMemory.cpp.
References lldb_private::CompilerType::GetDisplayTypeName(), m_compiler_type, and m_type_sp.
|
overridevirtual |
Return the module associated with this value object in case the value is from an executable file and might have its data in sections of the file.
This can be used for variables.
Reimplemented from lldb_private::ValueObject.
Definition at line 232 of file ValueObjectMemory.cpp.
References lldb_private::Address::GetModule(), and m_address.
Referenced by UpdateValue().
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 117 of file ValueObjectMemory.cpp.
References lldb_private::CompilerType::GetTypeName(), m_compiler_type, and m_type_sp.
|
overridevirtual |
Implements lldb_private::ValueObject.
Definition at line 149 of file ValueObjectMemory.cpp.
References lldb::eValueTypeVariableGlobal.
|
overridevirtual |
Reimplemented from lldb_private::ValueObject.
Definition at line 226 of file ValueObjectMemory.cpp.
|
privatedelete |
|
overrideprotectedvirtual |
Implements lldb_private::ValueObject.
Definition at line 154 of file ValueObjectMemory.cpp.
References lldb_private::ValueObject::CanProvideValue(), lldb_private::Status::Clear(), lldb_private::Value::FileAddress, lldb_private::ArchSpec::GetAddressByteSize(), lldb_private::Target::GetArchitecture(), lldb_private::ArchSpec::GetByteOrder(), lldb_private::ValueObject::GetExecutionContextRef(), lldb_private::Address::GetLoadAddress(), GetModule(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::Value::GetScalar(), lldb_private::ExecutionContext::GetTargetPtr(), lldb_private::Value::GetValueAsData(), lldb_private::Value::GetValueType(), lldb_private::Value::HostAddress, lldb_private::Value::Invalid, lldb_private::Address::IsValid(), LLDB_INVALID_ADDRESS, lldb_private::Value::LLDBType, lldb_private::Value::LoadAddress, m_address, m_compiler_type, lldb_private::ValueObject::m_data, lldb_private::ValueObject::m_error, m_type_sp, lldb_private::ValueObject::m_value, lldb_private::Value::Scalar, lldb_private::DataExtractor::SetAddressByteSize(), lldb_private::DataExtractor::SetByteOrder(), lldb_private::Value::SetCompilerType(), lldb_private::Value::SetContext(), lldb_private::Status::SetErrorString(), lldb_private::ValueObject::SetValueDidChange(), lldb_private::ValueObject::SetValueIsValid(), lldb_private::Value::SetValueType(), and lldb_private::Status::Success().
|
protected |
The variable that this value object is based upon.
Definition at line 63 of file ValueObjectMemory.h.
Referenced by GetModule(), UpdateValue(), and ValueObjectMemory().
|
protected |
Definition at line 65 of file ValueObjectMemory.h.
Referenced by CalculateNumChildren(), GetByteSize(), GetCompilerTypeImpl(), GetDisplayTypeName(), GetTypeName(), UpdateValue(), and ValueObjectMemory().
|
protected |
Definition at line 64 of file ValueObjectMemory.h.
Referenced by CalculateNumChildren(), GetByteSize(), GetCompilerTypeImpl(), GetDisplayTypeName(), GetTypeName(), UpdateValue(), and ValueObjectMemory().