LLDB mainline
InterpreterStackFrame Class Reference

Public Types

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

Public Member Functions

 InterpreterStackFrame (const 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
const 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 92 of file IRInterpreter.cpp.

Member Typedef Documentation

◆ ValueMap

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

Definition at line 94 of file IRInterpreter.cpp.

Constructor & Destructor Documentation

◆ InterpreterStackFrame()

InterpreterStackFrame::InterpreterStackFrame ( const 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 150 of file IRInterpreter.cpp.

References m_target_data.

Referenced by AssignValue(), and EvaluateValue().

◆ AssignValue()

◆ EvaluateValue()

◆ Jump()

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

Definition at line 127 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()

◆ 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 109 of file IRInterpreter.cpp.

Referenced by InterpreterStackFrame().

◆ m_bb

const BasicBlock* InterpreterStackFrame::m_bb = nullptr

Definition at line 99 of file IRInterpreter.cpp.

Referenced by Jump().

◆ m_byte_order

lldb::ByteOrder InterpreterStackFrame::m_byte_order

Definition at line 108 of file IRInterpreter.cpp.

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

◆ m_execution_unit

◆ m_frame_process_address

lldb::addr_t InterpreterStackFrame::m_frame_process_address

Definition at line 104 of file IRInterpreter.cpp.

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

◆ m_frame_size

size_t InterpreterStackFrame::m_frame_size

Definition at line 105 of file IRInterpreter.cpp.

Referenced by InterpreterStackFrame().

◆ m_ie

BasicBlock::const_iterator InterpreterStackFrame::m_ie

Definition at line 102 of file IRInterpreter.cpp.

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

◆ m_ii

BasicBlock::const_iterator InterpreterStackFrame::m_ii

Definition at line 101 of file IRInterpreter.cpp.

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

◆ m_prev_bb

const BasicBlock* InterpreterStackFrame::m_prev_bb = nullptr

Definition at line 100 of file IRInterpreter.cpp.

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

◆ m_stack_pointer

lldb::addr_t InterpreterStackFrame::m_stack_pointer

Definition at line 106 of file IRInterpreter.cpp.

Referenced by InterpreterStackFrame(), and Malloc().

◆ m_target_data

const DataLayout& InterpreterStackFrame::m_target_data

◆ m_values

ValueMap InterpreterStackFrame::m_values

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