LLDB mainline
|
#include <Materializer.h>
Classes | |
class | Dematerializer |
class | Entity |
class | PersistentVariableDelegate |
Public Types | |
typedef std::shared_ptr< Dematerializer > | DematerializerSP |
typedef std::weak_ptr< Dematerializer > | DematerializerWP |
Public Member Functions | |
Materializer ()=default | |
~Materializer () | |
DematerializerSP | Materialize (lldb::StackFrameSP &frame_sp, IRMemoryMap &map, lldb::addr_t process_address, Status &err) |
uint32_t | AddPersistentVariable (lldb::ExpressionVariableSP &persistent_variable_sp, PersistentVariableDelegate *delegate, Status &err) |
uint32_t | AddVariable (lldb::VariableSP &variable_sp, Status &err) |
uint32_t | AddValueObject (ConstString name, ValueObjectProviderTy valobj_provider, Status &err) |
Create entity from supplied ValueObject and count it as a member of the materialized struct. | |
uint32_t | AddResultVariable (const CompilerType &type, bool is_lvalue, bool keep_in_memory, PersistentVariableDelegate *delegate, Status &err) |
uint32_t | AddSymbol (const Symbol &symbol_sp, Status &err) |
uint32_t | AddRegister (const RegisterInfo ®ister_info, Status &err) |
uint32_t | GetStructAlignment () |
uint32_t | GetStructByteSize () |
Private Types | |
typedef std::unique_ptr< Entity > | EntityUP |
typedef std::vector< EntityUP > | EntityVector |
Private Member Functions | |
uint32_t | AddStructMember (Entity &entity) |
Private Attributes | |
DematerializerWP | m_dematerializer_wp |
EntityVector | m_entities |
uint32_t | m_current_offset = 0 |
uint32_t | m_struct_alignment = 8 |
Definition at line 23 of file Materializer.h.
typedef std::shared_ptr<Dematerializer> lldb_private::Materializer::DematerializerSP |
Definition at line 64 of file Materializer.h.
typedef std::weak_ptr<Dematerializer> lldb_private::Materializer::DematerializerWP |
Definition at line 65 of file Materializer.h.
|
private |
Definition at line 147 of file Materializer.h.
|
private |
Definition at line 148 of file Materializer.h.
|
default |
Materializer::~Materializer | ( | ) |
Definition at line 1505 of file Materializer.cpp.
References m_dematerializer_wp.
uint32_t Materializer::AddPersistentVariable | ( | lldb::ExpressionVariableSP & | persistent_variable_sp, |
PersistentVariableDelegate * | delegate, | ||
Status & | err | ||
) |
Definition at line 414 of file Materializer.cpp.
References AddStructMember(), and m_entities.
uint32_t Materializer::AddRegister | ( | const RegisterInfo & | register_info, |
Status & | err | ||
) |
Definition at line 1496 of file Materializer.cpp.
References AddStructMember(), and m_entities.
uint32_t Materializer::AddResultVariable | ( | const CompilerType & | type, |
bool | is_lvalue, | ||
bool | keep_in_memory, | ||
PersistentVariableDelegate * | delegate, | ||
Status & | err | ||
) |
Definition at line 1198 of file Materializer.cpp.
References AddStructMember(), and m_entities.
|
private |
Definition at line 40 of file Materializer.cpp.
References lldb_private::Materializer::Entity::GetAlignment(), lldb_private::Materializer::Entity::GetSize(), m_current_offset, and m_struct_alignment.
Referenced by AddPersistentVariable(), AddRegister(), AddResultVariable(), AddSymbol(), AddValueObject(), and AddVariable().
Definition at line 1321 of file Materializer.cpp.
References AddStructMember(), and m_entities.
uint32_t Materializer::AddValueObject | ( | ConstString | name, |
ValueObjectProviderTy | valobj_provider, | ||
Status & | err | ||
) |
Create entity from supplied ValueObject and count it as a member of the materialized struct.
Behaviour is undefined if 'valobj_provider' is empty.
[in] | name | Name of variable to materialize |
[in] | valobj_provider | When materializing values multiple times, this callback gets used to fetch a fresh ValueObject corresponding to the supplied frame. This is mainly used for conditional breakpoints that re-apply an expression whatever the frame happens to be when the breakpoint got hit. |
[out] | err | Error status that gets set on error. |
Definition at line 900 of file Materializer.cpp.
References AddStructMember(), and m_entities.
uint32_t Materializer::AddVariable | ( | lldb::VariableSP & | variable_sp, |
Status & | err | ||
) |
Definition at line 892 of file Materializer.cpp.
References AddStructMember(), and m_entities.
|
inline |
Definition at line 110 of file Materializer.h.
References m_struct_alignment.
|
inline |
Definition at line 112 of file Materializer.h.
References m_current_offset.
Materializer::DematerializerSP Materializer::Materialize | ( | lldb::StackFrameSP & | frame_sp, |
IRMemoryMap & | map, | ||
lldb::addr_t | process_address, | ||
Status & | err | ||
) |
Definition at line 1513 of file Materializer.cpp.
References error(), lldb_private::Expressions, lldb_private::Status::FromErrorString(), lldb_private::IRMemoryMap::GetBestExecutionContextScope(), lldb_private::GetLog(), LLDB_LOGF, m_dematerializer_wp, and m_entities.
|
private |
Definition at line 152 of file Materializer.h.
Referenced by AddStructMember(), and GetStructByteSize().
|
private |
Definition at line 150 of file Materializer.h.
Referenced by Materialize(), and ~Materializer().
|
private |
Definition at line 151 of file Materializer.h.
Referenced by AddPersistentVariable(), AddRegister(), AddResultVariable(), AddSymbol(), AddValueObject(), AddVariable(), lldb_private::Materializer::Dematerializer::Dematerialize(), and Materialize().
|
private |
Definition at line 153 of file Materializer.h.
Referenced by AddStructMember(), and GetStructAlignment().