|
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 905 of file Materializer.cpp.
|
inline |
Definition at line 907 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 979 of file Materializer.cpp.
References 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::Status::FromErrorStringWithFormatv(), 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 1108 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 918 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::Status::FromErrorStringWithFormatv(), 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 1171 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 1192 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 1187 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Materialize().
|
private |
Definition at line 1188 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Wipe().
|
private |
Definition at line 1190 of file Materializer.cpp.
Referenced by Dematerialize(), DumpToLog(), Materialize(), and Wipe().
|
private |
Definition at line 1191 of file Materializer.cpp.
Referenced by Dematerialize(), DumpToLog(), Materialize(), and Wipe().
|
private |
Definition at line 1183 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Materialize().