|
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 906 of file Materializer.cpp.
|
inline |
Definition at line 908 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 980 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 1109 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::Stream::PutCString(), lldb_private::Log::PutString(), lldb_private::IRMemoryMap::ReadMemory(), and lldb_private::Status::Success().
|
inlineoverridevirtual |
Implements lldb_private::Materializer::Entity.
Definition at line 919 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 1172 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 1193 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 1188 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Materialize().
|
private |
Definition at line 1189 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Wipe().
|
private |
Definition at line 1191 of file Materializer.cpp.
Referenced by Dematerialize(), DumpToLog(), Materialize(), and Wipe().
|
private |
Definition at line 1192 of file Materializer.cpp.
Referenced by Dematerialize(), DumpToLog(), Materialize(), and Wipe().
|
private |
Definition at line 1184 of file Materializer.cpp.
Referenced by Dematerialize(), EntityResultVariable(), and Materialize().