LLDB mainline
|
Public Member Functions | |
EntityResultVariable (const CompilerType &type, bool is_program_reference, bool keep_in_memory, Materializer::PersistentVariableDelegate *delegate) | |
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 |
uint32_t | GetAlignment () |
uint32_t | GetSize () |
uint32_t | GetOffset () |
void | SetOffset (uint32_t offset) |
Private Attributes | |
CompilerType | m_type |
bool | m_is_program_reference |
This is used both to control whether this result entity can (and should) track the value in inferior memory, as well as to control whether LLDB needs to allocate memory for the variable during materialization. | |
bool | m_keep_in_memory |
lldb::addr_t | m_temporary_allocation = LLDB_INVALID_ADDRESS |
size_t | m_temporary_allocation_size = 0 |
Materializer::PersistentVariableDelegate * | m_delegate |
Additional Inherited Members | |
Protected Attributes inherited from lldb_private::Materializer::Entity | |
uint32_t | m_alignment = 1 |
uint32_t | m_size = 0 |
uint32_t | m_offset = 0 |
Definition at line 919 of file Materializer.cpp.
|
inline |
Definition at line 921 of file Materializer.cpp.
References lldb_private::Materializer::Entity::Entity(), g_default_var_alignment, g_default_var_byte_size, lldb_private::Materializer::Entity::m_alignment, m_delegate, m_is_program_reference, m_keep_in_memory, lldb_private::Materializer::Entity::m_size, and m_type.
|
inlineoverridevirtual |
Implements lldb_private::Materializer::Entity.
Definition at line 994 of file Materializer.cpp.
References lldb_private::ConstString::AsCString(), lldb_private::ExecutionContextScope::CalculateProcess(), lldb_private::ExecutionContextScope::CalculateTarget(), lldb_private::Status::Clear(), lldb_private::ValueObjectConstResult::Create(), lldb_private::PersistentExpressionState::CreatePersistentVariable(), lldb_private::eAddressTypeLoad, error(), lldb_private::ExpressionVariable::EVIsLLDBAllocated, lldb_private::ExpressionVariable::EVIsProgramReference, lldb_private::ExpressionVariable::EVNeedsAllocation, lldb_private::IRMemoryMap::Free(), lldb_private::Status::FromErrorString(), lldb_private::Status::FromErrorStringWithFormat(), lldb_private::IRMemoryMap::GetAddressByteSize(), lldb_private::IRMemoryMap::GetBestExecutionContextScope(), lldb_private::IRMemoryMap::GetByteOrder(), lldb_private::PersistentExpressionState::GetNextPersistentVariableName(), LLDB_INVALID_ADDRESS, m_delegate, m_is_program_reference, m_keep_in_memory, lldb_private::Materializer::Entity::m_offset, m_temporary_allocation, m_temporary_allocation_size, m_type, lldb_private::IRMemoryMap::ReadMemory(), lldb_private::IRMemoryMap::ReadPointerFromMemory(), and lldb_private::Status::Success().
|
inlineoverridevirtual |
Implements lldb_private::Materializer::Entity.
Definition at line 1123 of file Materializer.cpp.
References lldb_private::DumpHexBytes(), lldb_private::DataExtractor::GetAddress(), lldb_private::IRMemoryMap::GetAddressByteSize(), lldb_private::IRMemoryMap::GetByteOrder(), lldb_private::WritableDataBuffer::GetBytes(), lldb_private::DataBufferHeap::GetByteSize(), lldb_private::StreamString::GetString(), LLDB_INVALID_ADDRESS, lldb_private::Materializer::Entity::m_offset, lldb_private::Materializer::Entity::m_size, m_temporary_allocation, m_temporary_allocation_size, lldb_private::Stream::Printf(), lldb_private::Stream::PutChar(), lldb_private::Log::PutString(), lldb_private::IRMemoryMap::ReadMemory(), and lldb_private::Status::Success().
|
inlineoverridevirtual |
Implements lldb_private::Materializer::Entity.
Definition at line 932 of file Materializer.cpp.
References lldb_private::Status::AsCString(), lldb_private::IRMemoryMap::eAllocationPolicyMirror, lldb_private::Status::FromError(), lldb_private::Status::FromErrorString(), lldb_private::Status::FromErrorStringWithFormat(), lldb_private::IRMemoryMap::GetBestExecutionContextScope(), LLDB_INVALID_ADDRESS, m_is_program_reference, lldb_private::Materializer::Entity::m_offset, m_temporary_allocation, m_temporary_allocation_size, m_type, lldb_private::IRMemoryMap::Malloc(), lldb_private::Status::Success(), lldb_private::toString(), and lldb_private::IRMemoryMap::WritePointerToMemory().
|
inlineoverridevirtual |
Implements lldb_private::Materializer::Entity.
Definition at line 1186 of file Materializer.cpp.
References lldb_private::IRMemoryMap::Free(), LLDB_INVALID_ADDRESS, m_keep_in_memory, m_temporary_allocation, and m_temporary_allocation_size.
|
private |
Definition at line 1207 of file Materializer.cpp.
Referenced by Dematerialize(), and EntityResultVariable().
|
private |
This is used both to control whether this result entity can (and should) track the value in inferior memory, as well as to control whether LLDB needs to allocate memory for the variable during materialization.
Definition at line 1202 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Materialize().
|
private |
Definition at line 1203 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Wipe().
|
private |
Definition at line 1205 of file Materializer.cpp.
Referenced by Dematerialize(), DumpToLog(), Materialize(), and Wipe().
|
private |
Definition at line 1206 of file Materializer.cpp.
Referenced by Dematerialize(), DumpToLog(), Materialize(), and Wipe().
|
private |
Definition at line 1198 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Materialize().