LLDB  mainline
Public Types | Public Member Functions | Public Attributes | List of all members
InterpreterStackFrame Class Reference
Collaboration diagram for InterpreterStackFrame:
Collaboration graph

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

Member Typedef Documentation

◆ ValueMap

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

Definition at line 95 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 

Definition at line 112 of file IRInterpreter.cpp.

References lldb::eByteOrderBig, and lldb::eByteOrderLittle.

◆ ~InterpreterStackFrame()

InterpreterStackFrame::~InterpreterStackFrame ( )

Member Function Documentation

◆ AssignToMatchType()

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

Definition at line 151 of file IRInterpreter.cpp.

◆ AssignValue()

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

◆ EvaluateValue()

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

◆ Jump()

void InterpreterStackFrame::Jump ( const BasicBlock *  bb)

Definition at line 128 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret().

◆ MakeArgument()

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

◆ Malloc() [1/2]

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

Definition at line 382 of file IRInterpreter.cpp.

◆ Malloc() [2/2]

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

Definition at line 369 of file IRInterpreter.cpp.


Referenced by IRInterpreter::Interpret().

◆ PrintData()

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

◆ ResolveConstant()

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

◆ ResolveConstantValue()

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

◆ ResolveValue()

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

Definition at line 413 of file IRInterpreter.cpp.

References lldb_private::IRMemoryMap::Free(), and LLDB_INVALID_ADDRESS.

Referenced by IRInterpreter::Interpret().

◆ SummarizeValue()

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

Member Data Documentation

◆ m_addr_byte_size

size_t InterpreterStackFrame::m_addr_byte_size

Definition at line 110 of file IRInterpreter.cpp.

◆ m_bb

const BasicBlock* InterpreterStackFrame::m_bb = nullptr

Definition at line 100 of file IRInterpreter.cpp.

◆ m_byte_order

lldb::ByteOrder InterpreterStackFrame::m_byte_order

Definition at line 109 of file IRInterpreter.cpp.

◆ m_execution_unit

lldb_private::IRExecutionUnit& InterpreterStackFrame::m_execution_unit

Definition at line 99 of file IRInterpreter.cpp.

◆ m_frame_process_address

lldb::addr_t InterpreterStackFrame::m_frame_process_address

Definition at line 105 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret().

◆ m_frame_size

size_t InterpreterStackFrame::m_frame_size

Definition at line 106 of file IRInterpreter.cpp.

◆ m_ie

BasicBlock::const_iterator InterpreterStackFrame::m_ie

Definition at line 103 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret().

◆ m_ii

BasicBlock::const_iterator InterpreterStackFrame::m_ii

Definition at line 102 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret().

◆ m_prev_bb

const BasicBlock* InterpreterStackFrame::m_prev_bb = nullptr

Definition at line 101 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret().

◆ m_stack_pointer

lldb::addr_t InterpreterStackFrame::m_stack_pointer

Definition at line 107 of file IRInterpreter.cpp.

◆ m_target_data

DataLayout& InterpreterStackFrame::m_target_data

Definition at line 98 of file IRInterpreter.cpp.

◆ m_values

ValueMap InterpreterStackFrame::m_values

Definition at line 97 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret().

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