#include "UnwindAssemblyInstEmulation.h"
#include "lldb/Core/Address.h"
#include "lldb/Core/Disassembler.h"
#include "lldb/Core/DumpDataExtractor.h"
#include "lldb/Core/DumpRegisterValue.h"
#include "lldb/Core/FormatEntity.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Target/ExecutionContext.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
#include "lldb/Utility/ArchSpec.h"
#include "lldb/Utility/DataBufferHeap.h"
#include "lldb/Utility/DataExtractor.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/Status.h"
#include "lldb/Utility/StreamString.h"
usingnamespacelldb;
usingnamespacelldb_private;
LLDB_PLUGIN_DEFINE(…)
bool UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly(
AddressRange &range, Thread &thread, UnwindPlan &unwind_plan) { … }
bool UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly(
AddressRange &range, uint8_t *opcode_data, size_t opcode_size,
UnwindPlan &unwind_plan) { … }
bool UnwindAssemblyInstEmulation::AugmentUnwindPlanFromCallSite(
AddressRange &func, Thread &thread, UnwindPlan &unwind_plan) { … }
bool UnwindAssemblyInstEmulation::GetFastUnwindPlan(AddressRange &func,
Thread &thread,
UnwindPlan &unwind_plan) { … }
bool UnwindAssemblyInstEmulation::FirstNonPrologueInsn(
AddressRange &func, const ExecutionContext &exe_ctx,
Address &first_non_prologue_insn) { … }
UnwindAssembly *
UnwindAssemblyInstEmulation::CreateInstance(const ArchSpec &arch) { … }
void UnwindAssemblyInstEmulation::Initialize() { … }
void UnwindAssemblyInstEmulation::Terminate() { … }
llvm::StringRef UnwindAssemblyInstEmulation::GetPluginDescriptionStatic() { … }
uint64_t UnwindAssemblyInstEmulation::MakeRegisterKindValuePair(
const RegisterInfo ®_info) { … }
void UnwindAssemblyInstEmulation::SetRegisterValue(
const RegisterInfo ®_info, const RegisterValue ®_value) { … }
bool UnwindAssemblyInstEmulation::GetRegisterValue(const RegisterInfo ®_info,
RegisterValue ®_value) { … }
size_t UnwindAssemblyInstEmulation::ReadMemory(
EmulateInstruction *instruction, void *baton,
const EmulateInstruction::Context &context, lldb::addr_t addr, void *dst,
size_t dst_len) { … }
size_t UnwindAssemblyInstEmulation::WriteMemory(
EmulateInstruction *instruction, void *baton,
const EmulateInstruction::Context &context, lldb::addr_t addr,
const void *dst, size_t dst_len) { … }
size_t UnwindAssemblyInstEmulation::WriteMemory(
EmulateInstruction *instruction, const EmulateInstruction::Context &context,
lldb::addr_t addr, const void *dst, size_t dst_len) { … }
bool UnwindAssemblyInstEmulation::ReadRegister(EmulateInstruction *instruction,
void *baton,
const RegisterInfo *reg_info,
RegisterValue ®_value) { … }
bool UnwindAssemblyInstEmulation::ReadRegister(EmulateInstruction *instruction,
const RegisterInfo *reg_info,
RegisterValue ®_value) { … }
bool UnwindAssemblyInstEmulation::WriteRegister(
EmulateInstruction *instruction, void *baton,
const EmulateInstruction::Context &context, const RegisterInfo *reg_info,
const RegisterValue ®_value) { … }
bool UnwindAssemblyInstEmulation::WriteRegister(
EmulateInstruction *instruction, const EmulateInstruction::Context &context,
const RegisterInfo *reg_info, const RegisterValue ®_value) { … }