LLDB mainline
lldb_private::PersistentExpressionState Class Referenceabstract

#include <ExpressionVariable.h>

Inheritance diagram for lldb_private::PersistentExpressionState:
[legend]

Public Member Functions

 PersistentExpressionState ()
virtual ~PersistentExpressionState ()
virtual lldb::ExpressionVariableSP CreatePersistentVariable (const lldb::ValueObjectSP &valobj_sp)=0
virtual lldb::ExpressionVariableSP CreatePersistentVariable (ExecutionContextScope *exe_scope, ConstString name, const CompilerType &type, lldb::ByteOrder byte_order, uint32_t addr_byte_size)=0
virtual ConstString GetNextPersistentVariableName (bool is_error=false)=0
 Return a new persistent variable name with the specified prefix.
virtual void RemovePersistentVariable (lldb::ExpressionVariableSP variable)=0
virtual std::optional< CompilerTypeGetCompilerTypeFromPersistentDecl (ConstString type_name)=0
virtual lldb::addr_t LookupSymbol (ConstString name)
void RegisterExecutionUnit (lldb::IRExecutionUnitSP &execution_unit_sp)
Public Member Functions inherited from lldb_private::ExpressionVariableList
size_t GetSize ()
 Implementation of methods in ExpressionVariableListBase.
lldb::ExpressionVariableSP GetVariableAtIndex (size_t index)
size_t AddVariable (const lldb::ExpressionVariableSP &var_sp)
lldb::ExpressionVariableSP AddNewlyConstructedVariable (ExpressionVariable *var)
bool ContainsVariable (const lldb::ExpressionVariableSP &var_sp)
lldb::ExpressionVariableSP GetVariable (ConstString name)
 Finds a variable by name in the list.
lldb::ExpressionVariableSP GetVariable (llvm::StringRef name)
void RemoveVariable (lldb::ExpressionVariableSP var_sp)
void Clear ()

Static Public Attributes

static char ID
 LLVM RTTI support.

Protected Member Functions

virtual llvm::StringRef GetPersistentVariablePrefix (bool is_error=false) const =0

Private Types

typedef std::set< lldb::IRExecutionUnitSPExecutionUnitSet
typedef llvm::DenseMap< const char *, lldb::addr_tSymbolMap

Private Attributes

ExecutionUnitSet m_execution_units
 The execution units that contain valuable symbols.
SymbolMap m_symbol_map
 The addresses of the symbols in m_execution_units.

Detailed Description

Definition at line 212 of file ExpressionVariable.h.

Member Typedef Documentation

◆ ExecutionUnitSet

◆ SymbolMap

typedef llvm::DenseMap<const char *, lldb::addr_t> lldb_private::PersistentExpressionState::SymbolMap
private

Definition at line 254 of file ExpressionVariable.h.

Constructor & Destructor Documentation

◆ PersistentExpressionState()

PersistentExpressionState::PersistentExpressionState ( )
default

◆ ~PersistentExpressionState()

PersistentExpressionState::~PersistentExpressionState ( )
virtualdefault

Member Function Documentation

◆ CreatePersistentVariable() [1/2]

virtual lldb::ExpressionVariableSP lldb_private::PersistentExpressionState::CreatePersistentVariable ( const lldb::ValueObjectSP & valobj_sp)
pure virtual

◆ CreatePersistentVariable() [2/2]

virtual lldb::ExpressionVariableSP lldb_private::PersistentExpressionState::CreatePersistentVariable ( ExecutionContextScope * exe_scope,
ConstString name,
const CompilerType & type,
lldb::ByteOrder byte_order,
uint32_t addr_byte_size )
pure virtual

◆ GetCompilerTypeFromPersistentDecl()

virtual std::optional< CompilerType > lldb_private::PersistentExpressionState::GetCompilerTypeFromPersistentDecl ( ConstString type_name)
pure virtual

◆ GetNextPersistentVariableName()

virtual ConstString lldb_private::PersistentExpressionState::GetNextPersistentVariableName ( bool is_error = false)
pure virtual

Return a new persistent variable name with the specified prefix.

Referenced by EntityResultVariable::Dematerialize(), lldb_private::ABI::GetReturnValueObject(), and lldb_private::ValueObject::Persist().

◆ GetPersistentVariablePrefix()

virtual llvm::StringRef lldb_private::PersistentExpressionState::GetPersistentVariablePrefix ( bool is_error = false) const
protectedpure virtual

◆ LookupSymbol()

lldb::addr_t PersistentExpressionState::LookupSymbol ( ConstString name)
virtual

◆ RegisterExecutionUnit()

void PersistentExpressionState::RegisterExecutionUnit ( lldb::IRExecutionUnitSP & execution_unit_sp)

◆ RemovePersistentVariable()

virtual void lldb_private::PersistentExpressionState::RemovePersistentVariable ( lldb::ExpressionVariableSP variable)
pure virtual

Member Data Documentation

◆ ID

char PersistentExpressionState::ID
static

LLVM RTTI support.

Definition at line 217 of file ExpressionVariable.h.

◆ m_execution_units

ExecutionUnitSet lldb_private::PersistentExpressionState::m_execution_units
private

The execution units that contain valuable symbols.

Definition at line 252 of file ExpressionVariable.h.

Referenced by RegisterExecutionUnit().

◆ m_symbol_map

SymbolMap lldb_private::PersistentExpressionState::m_symbol_map
private

The addresses of the symbols in m_execution_units.

Definition at line 256 of file ExpressionVariable.h.

Referenced by LookupSymbol(), and RegisterExecutionUnit().


The documentation for this class was generated from the following files: