#include "lldb/Symbol/FuncUnwinders.h"
#include "lldb/Core/Address.h"
#include "lldb/Core/AddressRange.h"
#include "lldb/Symbol/ArmUnwindInfo.h"
#include "lldb/Symbol/CallFrameInfo.h"
#include "lldb/Symbol/CompactUnwindInfo.h"
#include "lldb/Symbol/DWARFCallFrameInfo.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/SymbolFile.h"
#include "lldb/Symbol/UnwindPlan.h"
#include "lldb/Symbol/UnwindTable.h"
#include "lldb/Target/ABI.h"
#include "lldb/Target/ExecutionContext.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/RegisterNumber.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
#include "lldb/Target/UnwindAssembly.h"
#include <memory>
usingnamespacelldb;
usingnamespacelldb_private;
FuncUnwinders::FuncUnwinders(UnwindTable &unwind_table, AddressRange range)
: … { … }
FuncUnwinders::~FuncUnwinders() = default;
UnwindPlanSP FuncUnwinders::GetUnwindPlanAtCallSite(Target &target,
Thread &thread) { … }
UnwindPlanSP FuncUnwinders::GetCompactUnwindUnwindPlan(Target &target) { … }
lldb::UnwindPlanSP FuncUnwinders::GetObjectFileUnwindPlan(Target &target) { … }
UnwindPlanSP FuncUnwinders::GetEHFrameUnwindPlan(Target &target) { … }
UnwindPlanSP FuncUnwinders::GetDebugFrameUnwindPlan(Target &target) { … }
UnwindPlanSP FuncUnwinders::GetArmUnwindUnwindPlan(Target &target) { … }
namespace {
class RegisterContextToInfo: public SymbolFile::RegisterInfoResolver { … };
}
UnwindPlanSP FuncUnwinders::GetSymbolFileUnwindPlan(Thread &thread) { … }
UnwindPlanSP
FuncUnwinders::GetObjectFileAugmentedUnwindPlan(Target &target,
Thread &thread) { … }
UnwindPlanSP FuncUnwinders::GetEHFrameAugmentedUnwindPlan(Target &target,
Thread &thread) { … }
UnwindPlanSP FuncUnwinders::GetDebugFrameAugmentedUnwindPlan(Target &target,
Thread &thread) { … }
UnwindPlanSP FuncUnwinders::GetAssemblyUnwindPlan(Target &target,
Thread &thread) { … }
LazyBool FuncUnwinders::CompareUnwindPlansForIdenticalInitialPCLocation(
Thread &thread, const UnwindPlanSP &a, const UnwindPlanSP &b) { … }
UnwindPlanSP FuncUnwinders::GetUnwindPlanAtNonCallSite(Target &target,
Thread &thread) { … }
UnwindPlanSP FuncUnwinders::GetUnwindPlanFastUnwind(Target &target,
Thread &thread) { … }
UnwindPlanSP FuncUnwinders::GetUnwindPlanArchitectureDefault(Thread &thread) { … }
UnwindPlanSP
FuncUnwinders::GetUnwindPlanArchitectureDefaultAtFunctionEntry(Thread &thread) { … }
Address &FuncUnwinders::GetFirstNonPrologueInsn(Target &target) { … }
const Address &FuncUnwinders::GetFunctionStartAddress() const { … }
lldb::UnwindAssemblySP
FuncUnwinders::GetUnwindAssemblyProfiler(Target &target) { … }
Address FuncUnwinders::GetLSDAAddress(Target &target) { … }
Address FuncUnwinders::GetPersonalityRoutinePtrAddress(Target &target) { … }