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

#include <ExpressionVariable.h>

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

Public Types

enum  LLVMCastKind { eKindClang, eKindSwift, eKindGo, kNumKinds }
 
enum  Flags {
  EVNone = 0, EVIsLLDBAllocated = 1 << 0, EVIsProgramReference = 1 << 1, EVNeedsAllocation = 1 << 2,
  EVIsFreezeDried = 1 << 3, EVNeedsFreezeDry, EVKeepInTarget = 1 << 5, EVTypeIsReference = 1 << 6,
  EVUnknownType = 1 << 7, EVBareRegister = 1 << 8
}
 
typedef uint16_t FlagType
 

Public Member Functions

LLVMCastKind getKind () const
 
 ExpressionVariable (LLVMCastKind kind)
 
virtual ~ExpressionVariable ()
 
size_t GetByteSize ()
 
ConstString GetName ()
 
lldb::ValueObjectSP GetValueObject ()
 
uint8_t * GetValueBytes ()
 
void ValueUpdated ()
 
RegisterInfo * GetRegisterInfo ()
 
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
 
LLVMCastKind m_kind
 

Detailed Description

Definition at line 25 of file ExpressionVariable.h.

Member Typedef Documentation

◆ FlagType

Definition at line 109 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.

EVUnknownType 

This is a symbol of unknown type, and the type must be resolved after parsing is complete.

EVBareRegister 

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

Definition at line 82 of file ExpressionVariable.h.

◆ LLVMCastKind

Enumerator
eKindClang 
eKindSwift 
eKindGo 
kNumKinds 

Definition at line 29 of file ExpressionVariable.h.

Constructor & Destructor Documentation

◆ ExpressionVariable()

lldb_private::ExpressionVariable::ExpressionVariable ( LLVMCastKind  kind)
inline

Definition at line 33 of file ExpressionVariable.h.

References ~ExpressionVariable().

◆ ~ExpressionVariable()

ExpressionVariable::~ExpressionVariable ( )
virtual

Definition at line 16 of file ExpressionVariable.cpp.

Referenced by ExpressionVariable().

Member Function Documentation

◆ GetByteSize()

size_t lldb_private::ExpressionVariable::GetByteSize ( )
inline

Definition at line 37 of file ExpressionVariable.h.

References m_frozen_sp.

◆ GetCompilerType()

CompilerType lldb_private::ExpressionVariable::GetCompilerType ( )
inline

Definition at line 56 of file ExpressionVariable.h.

References m_frozen_sp.

◆ getKind()

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

Definition at line 31 of file ExpressionVariable.h.

References m_kind.

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

◆ GetName()

ConstString lldb_private::ExpressionVariable::GetName ( )
inline

Definition at line 39 of file ExpressionVariable.h.

References m_frozen_sp.

Referenced by lldb_private::ClangExpressionDeclMap::AddValueToStruct().

◆ GetRegisterInfo()

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

Definition at line 47 of file ExpressionVariable.h.

References m_frozen_sp.

Referenced by lldb_private::ClangExpressionDeclMap::AddValueToStruct().

◆ GetValueBytes()

uint8_t * ExpressionVariable::GetValueBytes ( )

Definition at line 18 of file ExpressionVariable.cpp.

References m_frozen_sp.

Referenced by GetValueObject().

◆ GetValueObject()

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

Definition at line 41 of file ExpressionVariable.h.

References GetValueBytes(), and m_frozen_sp.

◆ SetCompilerType()

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

◆ SetName()

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

◆ SetRegisterInfo()

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

◆ TransferAddress()

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

Definition at line 71 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 45 of file ExpressionVariable.h.

References m_frozen_sp.

Member Data Documentation

◆ m_flags

FlagType lldb_private::ExpressionVariable::m_flags

◆ m_frozen_sp

lldb::ValueObjectSP lldb_private::ExpressionVariable::m_frozen_sp

◆ m_kind

LLVMCastKind lldb_private::ExpressionVariable::m_kind

◆ m_live_sp

lldb::ValueObjectSP lldb_private::ExpressionVariable::m_live_sp

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