|
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 920 of file Materializer.cpp.
|
inline |
Definition at line 922 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 995 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 1124 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 933 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 1187 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 1208 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 1203 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Materialize().
|
private |
Definition at line 1204 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Wipe().
|
private |
Definition at line 1206 of file Materializer.cpp.
Referenced by Dematerialize(), DumpToLog(), Materialize(), and Wipe().
|
private |
Definition at line 1207 of file Materializer.cpp.
Referenced by Dematerialize(), DumpToLog(), Materialize(), and Wipe().
|
private |
Definition at line 1199 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Materialize().