LLDB mainline
|
Represents an Entity constructed from a VariableSP. More...
Public Member Functions | |
EntityValueObject (ConstString name, ValueObjectProviderTy provider) | |
ConstString | GetName () const override |
lldb::ValueObjectSP | SetupValueObject (ExecutionContextScope *scope) override |
Creates and returns ValueObject tied to this variable and prepares Entity for materialization. | |
std::optional< uint64_t > | GetByteSize (ExecutionContextScope *scope) const override |
Returns size in bytes of the type associated with this variable. | |
bool | LocationExpressionIsValid () const override |
Returns 'true' if the location expression associated with this variable is valid. | |
std::optional< size_t > | GetTypeBitAlign (ExecutionContextScope *scope) const override |
Returns alignment of the type associated with this variable in bits. | |
Public Member Functions inherited from EntityVariableBase | |
virtual | ~EntityVariableBase ()=default |
EntityVariableBase () | |
void | Materialize (lldb::StackFrameSP &frame_sp, IRMemoryMap &map, lldb::addr_t process_address, Status &err) override |
void | Dematerialize (lldb::StackFrameSP &frame_sp, IRMemoryMap &map, lldb::addr_t process_address, lldb::addr_t frame_top, lldb::addr_t frame_bottom, Status &err) override |
void | DumpToLog (IRMemoryMap &map, lldb::addr_t process_address, Log *log) override |
void | Wipe (IRMemoryMap &map, lldb::addr_t process_address) override |
Public Member Functions inherited from lldb_private::Materializer::Entity | |
Entity ()=default | |
virtual | ~Entity ()=default |
virtual void | Materialize (lldb::StackFrameSP &frame_sp, IRMemoryMap &map, lldb::addr_t process_address, Status &err)=0 |
virtual void | Dematerialize (lldb::StackFrameSP &frame_sp, IRMemoryMap &map, lldb::addr_t process_address, lldb::addr_t frame_top, lldb::addr_t frame_bottom, Status &err)=0 |
virtual void | DumpToLog (IRMemoryMap &map, lldb::addr_t process_address, Log *log)=0 |
virtual void | Wipe (IRMemoryMap &map, lldb::addr_t process_address)=0 |
uint32_t | GetAlignment () |
uint32_t | GetSize () |
uint32_t | GetOffset () |
void | SetOffset (uint32_t offset) |
Private Attributes | |
ConstString | m_name |
lldb::ValueObjectSP | m_valobj_sp |
ValueObjectProviderTy | m_valobj_provider |
Additional Inherited Members | |
Protected Attributes inherited from EntityVariableBase | |
bool | m_is_reference = false |
lldb::addr_t | m_temporary_allocation = LLDB_INVALID_ADDRESS |
size_t | m_temporary_allocation_size = 0 |
lldb::DataBufferSP | m_original_data |
Protected Attributes inherited from lldb_private::Materializer::Entity | |
uint32_t | m_alignment = 1 |
uint32_t | m_size = 0 |
uint32_t | m_offset = 0 |
Represents an Entity constructed from a VariableSP.
This class is used for materialization of variables for which the user does not have a VariableSP available (e.g., when materializing ivars).
Definition at line 844 of file Materializer.cpp.
|
inline |
Definition at line 846 of file Materializer.cpp.
|
inlineoverridevirtual |
Returns size in bytes of the type associated with this variable.
Implements EntityVariableBase.
Definition at line 864 of file Materializer.cpp.
|
inlineoverridevirtual |
Implements EntityVariableBase.
Definition at line 851 of file Materializer.cpp.
|
inlineoverridevirtual |
Returns alignment of the type associated with this variable in bits.
Implements EntityVariableBase.
Definition at line 879 of file Materializer.cpp.
|
inlineoverridevirtual |
Returns 'true' if the location expression associated with this variable is valid.
Implements EntityVariableBase.
Definition at line 871 of file Materializer.cpp.
|
inlineoverridevirtual |
Creates and returns ValueObject tied to this variable and prepares Entity for materialization.
Called each time the Materializer (de)materializes a variable. We re-create the ValueObject based on the current ExecutionContextScope since clients such as conditional breakpoints may materialize the same EntityVariable multiple times with different frames.
Each subsequent use of the EntityVariableBase interface will query the newly created ValueObject until this function is called again.
Implements EntityVariableBase.
Definition at line 853 of file Materializer.cpp.
References lldb_private::ExecutionContextScope::CalculateStackFrame(), and GetName().
|
private |
Definition at line 887 of file Materializer.cpp.
|
private |
Definition at line 889 of file Materializer.cpp.
|
private |
Definition at line 888 of file Materializer.cpp.