LLDB mainline
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lldb_private::ExpressionVariable Class Reference

#include <ExpressionVariable.h>

Inheritance diagram for lldb_private::ExpressionVariable:
Inheritance graph
[legend]

Public Types

enum  Flags {
  EVNone = 0 , EVIsLLDBAllocated = 1 << 0 , EVIsProgramReference = 1 << 1 , EVNeedsAllocation = 1 << 2 ,
  EVIsFreezeDried = 1 << 3 , EVNeedsFreezeDry , EVKeepInTarget = 1 << 5 , EVTypeIsReference = 1 << 6 ,
  EVBareRegister = 1 << 7
}
 
typedef uint16_t FlagType
 

Public Member Functions

 ExpressionVariable ()
 
virtual ~ExpressionVariable ()=default
 
std::optional< uint64_t > GetByteSize ()
 
ConstString GetName ()
 
lldb::ValueObjectSP GetValueObject ()
 
uint8_t * GetValueBytes ()
 
void ValueUpdated ()
 
RegisterInfoGetRegisterInfo ()
 
void SetRegisterInfo (const RegisterInfo *reg_info)
 
CompilerType GetCompilerType ()
 
void SetCompilerType (const CompilerType &compiler_type)
 
void SetName (ConstString name)
 
void TransferAddress (bool force=false)
 

Public Attributes

FlagType m_flags
 
lldb::ValueObjectSP m_frozen_sp
 
lldb::ValueObjectSP m_live_sp
 

Static Public Attributes

static char ID
 LLVM RTTI support.
 

Detailed Description

Definition at line 25 of file ExpressionVariable.h.

Member Typedef Documentation

◆ FlagType

Definition at line 106 of file ExpressionVariable.h.

Member Enumeration Documentation

◆ Flags

Enumerator
EVNone 
EVIsLLDBAllocated 

This variable is resident in a location specifically allocated for it by LLDB in the target process.

EVIsProgramReference 

This variable is a reference to a (possibly invalid) area managed by the target program.

EVNeedsAllocation 

Space for this variable has yet to be allocated in the target process.

EVIsFreezeDried 

This variable's authoritative version is in m_frozen_sp (for example, for statically-computed results)

EVNeedsFreezeDry 

Copy from m_live_sp to m_frozen_sp during dematerialization.

EVKeepInTarget 

Keep the allocation after the expression is complete rather than freeze drying its contents and freeing it.

EVTypeIsReference 

The original type of this variable is a reference, so materialize the value rather than the location.

EVBareRegister 

This variable is a direct reference to $pc or some other entity.

Definition at line 81 of file ExpressionVariable.h.

Constructor & Destructor Documentation

◆ ExpressionVariable()

ExpressionVariable::ExpressionVariable ( )

Definition at line 20 of file ExpressionVariable.cpp.

◆ ~ExpressionVariable()

virtual lldb_private::ExpressionVariable::~ExpressionVariable ( )
virtualdefault

Member Function Documentation

◆ GetByteSize()

std::optional< uint64_t > lldb_private::ExpressionVariable::GetByteSize ( )
inline

Definition at line 36 of file ExpressionVariable.h.

References m_frozen_sp.

◆ GetCompilerType()

CompilerType lldb_private::ExpressionVariable::GetCompilerType ( )
inline

Definition at line 55 of file ExpressionVariable.h.

References m_frozen_sp.

◆ GetName()

ConstString lldb_private::ExpressionVariable::GetName ( )
inline

Definition at line 38 of file ExpressionVariable.h.

References m_frozen_sp.

Referenced by lldb_private::ClangREPL::PrintOneVariable().

◆ GetRegisterInfo()

RegisterInfo * lldb_private::ExpressionVariable::GetRegisterInfo ( )
inline

Definition at line 46 of file ExpressionVariable.h.

References m_frozen_sp.

◆ GetValueBytes()

uint8_t * ExpressionVariable::GetValueBytes ( )

Definition at line 22 of file ExpressionVariable.cpp.

References m_frozen_sp.

◆ GetValueObject()

lldb::ValueObjectSP lldb_private::ExpressionVariable::GetValueObject ( )
inline

Definition at line 40 of file ExpressionVariable.h.

References m_frozen_sp.

◆ SetCompilerType()

void lldb_private::ExpressionVariable::SetCompilerType ( const CompilerType compiler_type)
inline

Definition at line 57 of file ExpressionVariable.h.

References m_frozen_sp.

◆ SetName()

void lldb_private::ExpressionVariable::SetName ( ConstString  name)
inline

Definition at line 61 of file ExpressionVariable.h.

References m_frozen_sp.

◆ SetRegisterInfo()

void lldb_private::ExpressionVariable::SetRegisterInfo ( const RegisterInfo reg_info)
inline

Definition at line 50 of file ExpressionVariable.h.

References m_frozen_sp, and lldb_private::Value::RegisterInfo.

◆ TransferAddress()

void lldb_private::ExpressionVariable::TransferAddress ( bool  force = false)
inline

Definition at line 70 of file ExpressionVariable.h.

References LLDB_INVALID_ADDRESS, m_frozen_sp, and m_live_sp.

◆ ValueUpdated()

void lldb_private::ExpressionVariable::ValueUpdated ( )
inline

Definition at line 44 of file ExpressionVariable.h.

References m_frozen_sp.

Member Data Documentation

◆ ID

char ExpressionVariable::ID
static

LLVM RTTI support.

Definition at line 30 of file ExpressionVariable.h.

◆ m_flags

FlagType lldb_private::ExpressionVariable::m_flags

Definition at line 108 of file ExpressionVariable.h.

◆ m_frozen_sp

lldb::ValueObjectSP lldb_private::ExpressionVariable::m_frozen_sp

◆ m_live_sp

lldb::ValueObjectSP lldb_private::ExpressionVariable::m_live_sp

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