LLDB  mainline
Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Attributes | List of all members
lldb_private::PersistentExpressionState Class Referenceabstract

#include <ExpressionVariable.h>

Inheritance diagram for lldb_private::PersistentExpressionState:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::PersistentExpressionState:
Collaboration graph
[legend]

Public Types

enum  LLVMCastKind { eKindClang, eKindSwift, eKindGo, kNumKinds }
 

Public Member Functions

LLVMCastKind getKind () const
 
 PersistentExpressionState (LLVMCastKind kind)
 
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. More...
 
virtual void RemovePersistentVariable (lldb::ExpressionVariableSP variable)=0
 
virtual llvm::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. More...
 
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. More...
 
lldb::ExpressionVariableSP GetVariable (llvm::StringRef name)
 
void RemoveVariable (lldb::ExpressionVariableSP var_sp)
 
void Clear ()
 

Protected Member Functions

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

Private Types

typedef std::set< lldb::IRExecutionUnitSP > ExecutionUnitSet
 
typedef llvm::DenseMap< const char *, lldb::addr_tSymbolMap
 

Private Attributes

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

Detailed Description

Definition at line 203 of file ExpressionVariable.h.

Member Typedef Documentation

◆ ExecutionUnitSet

typedef std::set<lldb::IRExecutionUnitSP> lldb_private::PersistentExpressionState::ExecutionUnitSet
private

Definition at line 243 of file ExpressionVariable.h.

◆ SymbolMap

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

Definition at line 247 of file ExpressionVariable.h.

Member Enumeration Documentation

◆ LLVMCastKind

Enumerator
eKindClang 
eKindSwift 
eKindGo 
kNumKinds 

Definition at line 206 of file ExpressionVariable.h.

Constructor & Destructor Documentation

◆ PersistentExpressionState()

lldb_private::PersistentExpressionState::PersistentExpressionState ( LLVMCastKind  kind)
inline

Definition at line 210 of file ExpressionVariable.h.

◆ ~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 llvm::Optional<CompilerType> lldb_private::PersistentExpressionState::GetCompilerTypeFromPersistentDecl ( ConstString  type_name)
pure virtual

◆ getKind()

LLVMCastKind lldb_private::PersistentExpressionState::getKind ( ) const
inline

Definition at line 208 of file ExpressionVariable.h.

References m_kind.

Referenced by lldb_private::ClangPersistentVariables::classof().

◆ GetNextPersistentVariableName()

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

Return a new persistent variable name with the specified prefix.

Implemented in lldb_private::ClangPersistentVariables.

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

◆ m_execution_units

ExecutionUnitSet lldb_private::PersistentExpressionState::m_execution_units
private

The execution units that contain valuable symbols.

Definition at line 245 of file ExpressionVariable.h.

Referenced by RegisterExecutionUnit().

◆ m_kind

LLVMCastKind lldb_private::PersistentExpressionState::m_kind
private

Definition at line 241 of file ExpressionVariable.h.

Referenced by getKind().

◆ m_symbol_map

SymbolMap lldb_private::PersistentExpressionState::m_symbol_map
private

The addresses of the symbols in m_execution_units.

Definition at line 249 of file ExpressionVariable.h.

Referenced by LookupSymbol(), and RegisterExecutionUnit().


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