LLDB mainline
|
Public Types | |
typedef std::map< const Value *, lldb::addr_t > | ValueMap |
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::IRExecutionUnit & | m_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 |
Definition at line 94 of file IRInterpreter.cpp.
typedef std::map<const Value *, lldb::addr_t> InterpreterStackFrame::ValueMap |
Definition at line 96 of file IRInterpreter.cpp.
|
inline |
Definition at line 113 of file IRInterpreter.cpp.
References lldb::eByteOrderBig, lldb::eByteOrderLittle, m_addr_byte_size, m_byte_order, m_frame_process_address, m_frame_size, and m_stack_pointer.
|
default |
|
inline |
Definition at line 152 of file IRInterpreter.cpp.
References m_target_data.
Referenced by AssignValue(), and EvaluateValue().
|
inline |
Definition at line 222 of file IRInterpreter.cpp.
References AssignToMatchType(), lldb_private::Scalar::GetAsMemoryData(), lldb_private::WritableDataBuffer::GetBytes(), lldb_private::DataBufferHeap::GetByteSize(), LLDB_INVALID_ADDRESS, m_byte_order, m_execution_unit, m_target_data, lldb_private::Scalar::MakeUnsigned(), ResolveValue(), lldb_private::Status::Success(), lldb_private::Scalar::UInt128(), and lldb_private::IRMemoryMap::WriteMemory().
Referenced by IRInterpreter::Interpret().
|
inline |
Definition at line 166 of file IRInterpreter.cpp.
References AssignToMatchType(), lldb_private::DataExtractor::GetDouble(), lldb_private::DataExtractor::GetFloat(), lldb_private::DataExtractor::GetMaxU64(), lldb_private::IRMemoryMap::GetMemoryData(), m_execution_unit, m_target_data, ResolveConstantValue(), ResolveValue(), and lldb_private::Status::Success().
Referenced by IRInterpreter::Interpret().
|
inline |
Definition at line 129 of file IRInterpreter.cpp.
References m_bb, m_ie, m_ii, and m_prev_bb.
Referenced by IRInterpreter::Interpret().
|
inline |
Definition at line 339 of file IRInterpreter.cpp.
References lldb_private::IRMemoryMap::Free(), LLDB_INVALID_ADDRESS, LLDB_LOGF, m_execution_unit, m_values, Malloc(), PrintValue(), lldb_private::Status::Success(), and lldb_private::IRMemoryMap::WritePointerToMemory().
Referenced by IRInterpreter::Interpret().
|
inline |
Definition at line 408 of file IRInterpreter.cpp.
References m_target_data, and Malloc().
|
inline |
Definition at line 395 of file IRInterpreter.cpp.
References LLDB_INVALID_ADDRESS, m_frame_process_address, and m_stack_pointer.
Referenced by IRInterpreter::Interpret(), MakeArgument(), Malloc(), and ResolveValue().
|
inline |
Definition at line 415 of file IRInterpreter.cpp.
References lldb_private::WritableDataBuffer::GetBytes(), lldb_private::StreamString::GetString(), m_execution_unit, m_target_data, lldb_private::Stream::Printf(), lldb_private::IRMemoryMap::ReadMemory(), and lldb_private::Status::Success().
|
inline |
Definition at line 370 of file IRInterpreter.cpp.
References lldb_private::Scalar::GetAsMemoryData(), lldb_private::WritableDataBuffer::GetBytes(), lldb_private::DataBufferHeap::GetByteSize(), m_byte_order, m_execution_unit, m_target_data, ResolveConstantValue(), lldb_private::Status::Success(), and lldb_private::IRMemoryMap::WriteMemory().
Referenced by ResolveValue().
|
inline |
Definition at line 258 of file IRInterpreter.cpp.
References lldb_private::IRExecutionUnit::FindSymbol(), LLDB_INVALID_ADDRESS, m_execution_unit, m_target_data, and ResolveConstantValue().
Referenced by EvaluateValue(), ResolveConstant(), and ResolveConstantValue().
|
inline |
Definition at line 439 of file IRInterpreter.cpp.
References lldb_private::IRMemoryMap::Free(), LLDB_INVALID_ADDRESS, m_execution_unit, m_values, Malloc(), and ResolveConstant().
Referenced by AssignValue(), EvaluateValue(), and IRInterpreter::Interpret().
|
inline |
Definition at line 136 of file IRInterpreter.cpp.
References lldb_private::StreamString::GetString(), m_values, lldb_private::Stream::Printf(), and PrintValue().
Referenced by IRInterpreter::Interpret().
size_t InterpreterStackFrame::m_addr_byte_size |
Definition at line 111 of file IRInterpreter.cpp.
Referenced by InterpreterStackFrame().
const BasicBlock* InterpreterStackFrame::m_bb = nullptr |
Definition at line 101 of file IRInterpreter.cpp.
Referenced by Jump().
lldb::ByteOrder InterpreterStackFrame::m_byte_order |
Definition at line 110 of file IRInterpreter.cpp.
Referenced by AssignValue(), InterpreterStackFrame(), and ResolveConstant().
lldb_private::IRExecutionUnit& InterpreterStackFrame::m_execution_unit |
Definition at line 100 of file IRInterpreter.cpp.
Referenced by AssignValue(), EvaluateValue(), MakeArgument(), PrintData(), ResolveConstant(), ResolveConstantValue(), and ResolveValue().
lldb::addr_t InterpreterStackFrame::m_frame_process_address |
Definition at line 106 of file IRInterpreter.cpp.
Referenced by IRInterpreter::Interpret(), InterpreterStackFrame(), and Malloc().
size_t InterpreterStackFrame::m_frame_size |
Definition at line 107 of file IRInterpreter.cpp.
Referenced by InterpreterStackFrame().
BasicBlock::const_iterator InterpreterStackFrame::m_ie |
Definition at line 104 of file IRInterpreter.cpp.
Referenced by IRInterpreter::Interpret(), and Jump().
BasicBlock::const_iterator InterpreterStackFrame::m_ii |
Definition at line 103 of file IRInterpreter.cpp.
Referenced by IRInterpreter::Interpret(), and Jump().
const BasicBlock* InterpreterStackFrame::m_prev_bb = nullptr |
Definition at line 102 of file IRInterpreter.cpp.
Referenced by IRInterpreter::Interpret(), and Jump().
lldb::addr_t InterpreterStackFrame::m_stack_pointer |
Definition at line 108 of file IRInterpreter.cpp.
Referenced by InterpreterStackFrame(), and Malloc().
const DataLayout& InterpreterStackFrame::m_target_data |
Definition at line 99 of file IRInterpreter.cpp.
Referenced by AssignToMatchType(), AssignValue(), EvaluateValue(), Malloc(), PrintData(), ResolveConstant(), and ResolveConstantValue().
ValueMap InterpreterStackFrame::m_values |
Definition at line 98 of file IRInterpreter.cpp.
Referenced by IRInterpreter::Interpret(), MakeArgument(), ResolveValue(), and SummarizeValue().