#include <UnwindAssemblyInstEmulation.h>
|
| ~UnwindAssemblyInstEmulation () override=default |
|
bool | GetNonCallSiteUnwindPlanFromAssembly (lldb_private::AddressRange &func, lldb_private::Thread &thread, lldb_private::UnwindPlan &unwind_plan) override |
|
bool | GetNonCallSiteUnwindPlanFromAssembly (lldb_private::AddressRange &func, uint8_t *opcode_data, size_t opcode_size, lldb_private::UnwindPlan &unwind_plan) |
|
bool | AugmentUnwindPlanFromCallSite (lldb_private::AddressRange &func, lldb_private::Thread &thread, lldb_private::UnwindPlan &unwind_plan) override |
|
bool | GetFastUnwindPlan (lldb_private::AddressRange &func, lldb_private::Thread &thread, lldb_private::UnwindPlan &unwind_plan) override |
|
bool | FirstNonPrologueInsn (lldb_private::AddressRange &func, const lldb_private::ExecutionContext &exe_ctx, lldb_private::Address &first_non_prologue_insn) override |
|
llvm::StringRef | GetPluginName () override |
|
virtual bool | GetNonCallSiteUnwindPlanFromAssembly (AddressRange &func, Thread &thread, UnwindPlan &unwind_plan)=0 |
|
virtual bool | AugmentUnwindPlanFromCallSite (AddressRange &func, Thread &thread, UnwindPlan &unwind_plan)=0 |
|
virtual bool | GetFastUnwindPlan (AddressRange &func, Thread &thread, UnwindPlan &unwind_plan)=0 |
|
virtual bool | FirstNonPrologueInsn (AddressRange &func, const lldb_private::ExecutionContext &exe_ctx, Address &first_non_prologue_insn)=0 |
|
| PluginInterface ()=default |
|
virtual | ~PluginInterface ()=default |
|
virtual llvm::StringRef | GetPluginName ()=0 |
|
| PluginInterface (const PluginInterface &)=delete |
|
PluginInterface & | operator= (const PluginInterface &)=delete |
|
|
| UnwindAssemblyInstEmulation (const lldb_private::ArchSpec &arch, lldb_private::EmulateInstruction *inst_emulator) |
|
size_t | WriteMemory (lldb_private::EmulateInstruction *instruction, const lldb_private::EmulateInstruction::Context &context, lldb::addr_t addr, const void *dst, size_t length) |
|
bool | ReadRegister (lldb_private::EmulateInstruction *instruction, const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue ®_value) |
|
bool | WriteRegister (lldb_private::EmulateInstruction *instruction, const lldb_private::EmulateInstruction::Context &context, const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue ®_value) |
|
void | SetRegisterValue (const lldb_private::RegisterInfo ®_info, const lldb_private::RegisterValue ®_value) |
|
bool | GetRegisterValue (const lldb_private::RegisterInfo ®_info, lldb_private::RegisterValue ®_value) |
|
|
static size_t | ReadMemory (lldb_private::EmulateInstruction *instruction, void *baton, const lldb_private::EmulateInstruction::Context &context, lldb::addr_t addr, void *dst, size_t length) |
|
static size_t | WriteMemory (lldb_private::EmulateInstruction *instruction, void *baton, const lldb_private::EmulateInstruction::Context &context, lldb::addr_t addr, const void *dst, size_t length) |
|
static bool | ReadRegister (lldb_private::EmulateInstruction *instruction, void *baton, const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue ®_value) |
|
static bool | WriteRegister (lldb_private::EmulateInstruction *instruction, void *baton, const lldb_private::EmulateInstruction::Context &context, const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue ®_value) |
|
static uint64_t | MakeRegisterKindValuePair (const lldb_private::RegisterInfo ®_info) |
|
◆ PushedRegisterToAddrMap
◆ RegisterValueMap
◆ ~UnwindAssemblyInstEmulation()
UnwindAssemblyInstEmulation::~UnwindAssemblyInstEmulation |
( |
| ) |
|
|
overridedefault |
◆ UnwindAssemblyInstEmulation()
◆ AugmentUnwindPlanFromCallSite()
◆ CreateInstance()
◆ FirstNonPrologueInsn()
◆ GetFastUnwindPlan()
◆ GetNonCallSiteUnwindPlanFromAssembly() [1/2]
◆ GetNonCallSiteUnwindPlanFromAssembly() [2/2]
Definition at line 53 of file UnwindAssemblyInstEmulation.cpp.
References lldb_private::AddressRange::ContainsFileAddress(), lldb_private::Disassembler::DisassembleBytes(), lldb_private::UnwindPlan::Dump(), lldb_private::Instruction::Dump(), lldb::eRegisterKindGeneric, lldb_private::Instruction::GetAddress(), lldb_private::ArchSpec::GetAddressByteSize(), lldb_private::AddressRange::GetBaseAddress(), lldb_private::AddressRange::GetByteSize(), lldb_private::Opcode::GetByteSize(), lldb_private::Address::GetFileAddress(), lldb_private::UnwindPlan::GetInitialCFARegister(), lldb_private::InstructionList::GetInstructionAtIndex(), lldb_private::UnwindPlan::GetLastRow(), lldb_private::GetLog(), lldb_private::InstructionList::GetMaxOpcocdeByteSize(), lldb_private::Instruction::GetOpcode(), lldb_private::UnwindPlan::GetRegisterKind(), lldb_private::UnwindPlan::GetRowCount(), lldb_private::InstructionList::GetSize(), lldb_private::StreamString::GetString(), lldb_private::Log::GetVerbose(), lldb_private::UnwindPlan::InsertRow(), lldb_private::Address::IsValid(), LLDB_REGNUM_GENERIC_SP, lldb_private::UnwindAssembly::m_arch, m_cfa_reg_info, m_curr_row, m_curr_row_modified, m_forward_branch_offset, m_fp_is_cfa, m_initial_sp, m_inst_emulator_up, m_pushed_regs, m_range_ptr, m_register_values, m_unwind_plan_ptr, lldb_private::FormatEntity::Parse(), lldb_private::Stream::Printf(), lldb_private::Log::PutString(), lldb_private::UnwindPlan::Row::SetOffset(), SetRegisterValue(), lldb_private::RegisterValue::SetUInt(), and lldb_private::EmulateInstruction::UnconditionalCondition.
◆ GetPluginDescriptionStatic()
llvm::StringRef UnwindAssemblyInstEmulation::GetPluginDescriptionStatic |
( |
| ) |
|
|
static |
◆ GetPluginName()
llvm::StringRef UnwindAssemblyInstEmulation::GetPluginName |
( |
| ) |
|
|
inlineoverridevirtual |
◆ GetPluginNameStatic()
static llvm::StringRef UnwindAssemblyInstEmulation::GetPluginNameStatic |
( |
| ) |
|
|
inlinestatic |
◆ GetRegisterValue()
bool UnwindAssemblyInstEmulation::GetRegisterValue |
( |
const lldb_private::RegisterInfo & |
reg_info, |
|
|
lldb_private::RegisterValue & |
reg_value |
|
) |
| |
|
private |
◆ Initialize()
void UnwindAssemblyInstEmulation::Initialize |
( |
| ) |
|
|
static |
◆ MakeRegisterKindValuePair()
uint64_t UnwindAssemblyInstEmulation::MakeRegisterKindValuePair |
( |
const lldb_private::RegisterInfo & |
reg_info | ) |
|
|
staticprivate |
◆ ReadMemory()
◆ ReadRegister() [1/2]
◆ ReadRegister() [2/2]
◆ SetRegisterValue()
void UnwindAssemblyInstEmulation::SetRegisterValue |
( |
const lldb_private::RegisterInfo & |
reg_info, |
|
|
const lldb_private::RegisterValue & |
reg_value |
|
) |
| |
|
private |
◆ Terminate()
void UnwindAssemblyInstEmulation::Terminate |
( |
| ) |
|
|
static |
◆ WriteMemory() [1/2]
Definition at line 407 of file UnwindAssemblyInstEmulation.cpp.
References lldb_private::EmulateInstruction::Context::ContextInfo::RegisterToRegisterPlusOffset::data_reg, lldb_private::EmulateInstruction::Context::Dump(), lldb_private::DumpDataExtractor(), lldb_private::EmulateInstruction::eContextAbsoluteBranchRegister, lldb_private::EmulateInstruction::eContextAdjustBaseRegister, lldb_private::EmulateInstruction::eContextAdjustPC, lldb_private::EmulateInstruction::eContextAdjustStackPointer, lldb_private::EmulateInstruction::eContextAdvancePC, lldb_private::EmulateInstruction::eContextArithmetic, lldb_private::EmulateInstruction::eContextImmediate, lldb_private::EmulateInstruction::eContextInvalid, lldb_private::EmulateInstruction::eContextPopRegisterOffStack, lldb_private::EmulateInstruction::eContextPushRegisterOnStack, lldb_private::EmulateInstruction::eContextReadOpcode, lldb_private::EmulateInstruction::eContextRegisterLoad, lldb_private::EmulateInstruction::eContextRegisterPlusOffset, lldb_private::EmulateInstruction::eContextRegisterStore, lldb_private::EmulateInstruction::eContextRelativeBranchImmediate, lldb_private::EmulateInstruction::eContextReturnFromException, lldb_private::EmulateInstruction::eContextSupervisorCall, lldb_private::EmulateInstruction::eContextTableBranchReadMemory, lldb_private::EmulateInstruction::eContextWriteMemoryRandomBits, lldb_private::EmulateInstruction::eContextWriteRegisterRandomBits, lldb::eFormatBytes, lldb_private::EmulateInstruction::eInfoTypeRegisterToRegisterPlusOffset, lldb::eRegisterKindGeneric, lldb_private::ArchSpec::GetAddressByteSize(), lldb_private::EmulateInstruction::GetArchitecture(), lldb_private::ArchSpec::GetByteOrder(), lldb_private::EmulateInstruction::Context::GetInfoType(), lldb_private::GetLog(), lldb_private::UnwindPlan::GetRegisterKind(), lldb_private::StreamString::GetString(), lldb_private::Log::GetVerbose(), lldb_private::EmulateInstruction::Context::info, LLDB_INVALID_REGNUM, LLDB_REGNUM_GENERIC_SP, m_curr_row, m_curr_row_modified, m_initial_sp, m_pushed_regs, m_unwind_plan_ptr, lldb_private::Stream::PutCString(), lldb_private::Log::PutString(), lldb_private::EmulateInstruction::Context::ContextInfo::RegisterToRegisterPlusOffset, lldb_private::EmulateInstruction::Context::type, and UINT32_MAX.
◆ WriteMemory() [2/2]
◆ WriteRegister() [1/2]
◆ WriteRegister() [2/2]
◆ m_cfa_reg_info
lldb_private::RegisterInfo UnwindAssemblyInstEmulation::m_cfa_reg_info |
|
private |
◆ m_curr_row
◆ m_curr_row_modified
bool UnwindAssemblyInstEmulation::m_curr_row_modified |
|
private |
◆ m_forward_branch_offset
uint32_t UnwindAssemblyInstEmulation::m_forward_branch_offset |
|
private |
◆ m_fp_is_cfa
bool UnwindAssemblyInstEmulation::m_fp_is_cfa |
|
private |
◆ m_initial_sp
uint64_t UnwindAssemblyInstEmulation::m_initial_sp |
|
private |
◆ m_inst_emulator_up
◆ m_pushed_regs
◆ m_range_ptr
◆ m_register_values
◆ m_unwind_plan_ptr
The documentation for this class was generated from the following files: