LLDB mainline
Public Types | Public Member Functions | Public Attributes | List of all members
InterpreterStackFrame Class Reference

Public Types

typedef std::map< const Value *, lldb::addr_tValueMap
 

Public Member Functions

 InterpreterStackFrame (DataLayout &target_data, lldb_private::IRExecutionUnit &execution_unit, lldb::addr_t stack_frame_bottom, lldb::addr_t stack_frame_top)
 
 ~InterpreterStackFrame ()=default
 
void Jump (const BasicBlock *bb)
 
std::string SummarizeValue (const Value *value)
 
bool AssignToMatchType (lldb_private::Scalar &scalar, llvm::APInt value, Type *type)
 
bool EvaluateValue (lldb_private::Scalar &scalar, const Value *value, Module &module)
 
bool AssignValue (const Value *value, lldb_private::Scalar scalar, Module &module)
 
bool ResolveConstantValue (APInt &value, const Constant *constant)
 
bool MakeArgument (const Argument *value, uint64_t address)
 
bool ResolveConstant (lldb::addr_t process_address, const Constant *constant)
 
lldb::addr_t Malloc (size_t size, uint8_t byte_alignment)
 
lldb::addr_t Malloc (llvm::Type *type)
 
std::string PrintData (lldb::addr_t addr, llvm::Type *type)
 
lldb::addr_t ResolveValue (const Value *value, Module &module)
 

Public Attributes

ValueMap m_values
 
DataLayout & m_target_data
 
lldb_private::IRExecutionUnitm_execution_unit
 
const BasicBlock * m_bb = nullptr
 
const BasicBlock * m_prev_bb = nullptr
 
BasicBlock::const_iterator m_ii
 
BasicBlock::const_iterator m_ie
 
lldb::addr_t m_frame_process_address
 
size_t m_frame_size
 
lldb::addr_t m_stack_pointer
 
lldb::ByteOrder m_byte_order
 
size_t m_addr_byte_size
 

Detailed Description

Definition at line 94 of file IRInterpreter.cpp.

Member Typedef Documentation

◆ ValueMap

typedef std::map<const Value *, lldb::addr_t> InterpreterStackFrame::ValueMap

Definition at line 96 of file IRInterpreter.cpp.

Constructor & Destructor Documentation

◆ InterpreterStackFrame()

InterpreterStackFrame::InterpreterStackFrame ( DataLayout &  target_data,
lldb_private::IRExecutionUnit execution_unit,
lldb::addr_t  stack_frame_bottom,
lldb::addr_t  stack_frame_top 
)
inline

◆ ~InterpreterStackFrame()

InterpreterStackFrame::~InterpreterStackFrame ( )
default

Member Function Documentation

◆ AssignToMatchType()

bool InterpreterStackFrame::AssignToMatchType ( lldb_private::Scalar scalar,
llvm::APInt  value,
Type *  type 
)
inline

Definition at line 152 of file IRInterpreter.cpp.

References m_target_data.

Referenced by AssignValue(), and EvaluateValue().

◆ AssignValue()

bool InterpreterStackFrame::AssignValue ( const Value *  value,
lldb_private::Scalar  scalar,
Module &  module 
)
inline

◆ EvaluateValue()

bool InterpreterStackFrame::EvaluateValue ( lldb_private::Scalar scalar,
const Value *  value,
Module &  module 
)
inline

◆ Jump()

void InterpreterStackFrame::Jump ( const BasicBlock *  bb)
inline

Definition at line 129 of file IRInterpreter.cpp.

References m_bb, m_ie, m_ii, and m_prev_bb.

Referenced by IRInterpreter::Interpret().

◆ MakeArgument()

bool InterpreterStackFrame::MakeArgument ( const Argument *  value,
uint64_t  address 
)
inline

◆ Malloc() [1/2]

lldb::addr_t InterpreterStackFrame::Malloc ( llvm::Type *  type)
inline

Definition at line 408 of file IRInterpreter.cpp.

References m_target_data, and Malloc().

◆ Malloc() [2/2]

lldb::addr_t InterpreterStackFrame::Malloc ( size_t  size,
uint8_t  byte_alignment 
)
inline

◆ PrintData()

std::string InterpreterStackFrame::PrintData ( lldb::addr_t  addr,
llvm::Type *  type 
)
inline

◆ ResolveConstant()

bool InterpreterStackFrame::ResolveConstant ( lldb::addr_t  process_address,
const Constant *  constant 
)
inline

◆ ResolveConstantValue()

bool InterpreterStackFrame::ResolveConstantValue ( APInt &  value,
const Constant *  constant 
)
inline

◆ ResolveValue()

lldb::addr_t InterpreterStackFrame::ResolveValue ( const Value *  value,
Module &  module 
)
inline

◆ SummarizeValue()

std::string InterpreterStackFrame::SummarizeValue ( const Value *  value)
inline

Member Data Documentation

◆ m_addr_byte_size

size_t InterpreterStackFrame::m_addr_byte_size

Definition at line 111 of file IRInterpreter.cpp.

Referenced by InterpreterStackFrame().

◆ m_bb

const BasicBlock* InterpreterStackFrame::m_bb = nullptr

Definition at line 101 of file IRInterpreter.cpp.

Referenced by Jump().

◆ m_byte_order

lldb::ByteOrder InterpreterStackFrame::m_byte_order

Definition at line 110 of file IRInterpreter.cpp.

Referenced by AssignValue(), InterpreterStackFrame(), and ResolveConstant().

◆ m_execution_unit

lldb_private::IRExecutionUnit& InterpreterStackFrame::m_execution_unit

◆ m_frame_process_address

lldb::addr_t InterpreterStackFrame::m_frame_process_address

Definition at line 106 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret(), InterpreterStackFrame(), and Malloc().

◆ m_frame_size

size_t InterpreterStackFrame::m_frame_size

Definition at line 107 of file IRInterpreter.cpp.

Referenced by InterpreterStackFrame().

◆ m_ie

BasicBlock::const_iterator InterpreterStackFrame::m_ie

Definition at line 104 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret(), and Jump().

◆ m_ii

BasicBlock::const_iterator InterpreterStackFrame::m_ii

Definition at line 103 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret(), and Jump().

◆ m_prev_bb

const BasicBlock* InterpreterStackFrame::m_prev_bb = nullptr

Definition at line 102 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret(), and Jump().

◆ m_stack_pointer

lldb::addr_t InterpreterStackFrame::m_stack_pointer

Definition at line 108 of file IRInterpreter.cpp.

Referenced by InterpreterStackFrame(), and Malloc().

◆ m_target_data

DataLayout& InterpreterStackFrame::m_target_data

◆ m_values

ValueMap InterpreterStackFrame::m_values

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