LLDB mainline
|
#include <UnwindPlan.h>
Public Types | |
enum | ValueType { unspecified , isRegisterPlusOffset , isRegisterDereferenced , isDWARFExpression , isRaSearch , isConstant } |
Public Member Functions | |
FAValue () | |
bool | operator== (const FAValue &rhs) const |
bool | operator!= (const FAValue &rhs) const |
void | SetUnspecified () |
bool | IsUnspecified () const |
void | SetRaSearch (int32_t offset) |
bool | IsRegisterPlusOffset () const |
void | SetIsRegisterPlusOffset (uint32_t reg_num, int32_t offset) |
bool | IsRegisterDereferenced () const |
void | SetIsRegisterDereferenced (uint32_t reg_num) |
bool | IsDWARFExpression () const |
void | SetIsDWARFExpression (const uint8_t *opcodes, uint32_t len) |
bool | IsConstant () const |
void | SetIsConstant (uint64_t constant) |
uint64_t | GetConstant () const |
uint32_t | GetRegisterNumber () const |
ValueType | GetValueType () const |
int32_t | GetOffset () const |
void | IncOffset (int32_t delta) |
void | SetOffset (int32_t offset) |
void | GetDWARFExpr (const uint8_t **opcodes, uint16_t &len) const |
const uint8_t * | GetDWARFExpressionBytes () const |
int | GetDWARFExpressionLength () const |
void | Dump (Stream &s, const UnwindPlan *unwind_plan, Thread *thread) const |
Private Attributes | |
ValueType | m_type = unspecified |
union { | |
struct { | |
uint32_t reg_num | |
int32_t offset | |
} reg | |
struct { | |
const uint8_t * opcodes | |
uint16_t length | |
} expr | |
int32_t ra_search_offset | |
uint64_t constant | |
} | m_value |
Definition at line 210 of file UnwindPlan.h.
Enumerator | |
---|---|
unspecified | |
isRegisterPlusOffset | |
isRegisterDereferenced | |
isDWARFExpression | |
isRaSearch | |
isConstant |
Definition at line 212 of file UnwindPlan.h.
|
inline |
void UnwindPlan::Row::FAValue::Dump | ( | Stream & | s, |
const UnwindPlan * | unwind_plan, | ||
Thread * | thread ) const |
Definition at line 200 of file UnwindPlan.cpp.
References DumpDWARFExpr(), DumpRegisterName(), isConstant, isDWARFExpression, isRaSearch, isRegisterDereferenced, isRegisterPlusOffset, m_type, m_value, lldb_private::Stream::Printf(), lldb_private::Stream::PutChar(), lldb_private::Stream::PutCString(), unspecified, and lldb_private::UnwindPlan::UnwindPlan().
|
inline |
Definition at line 270 of file UnwindPlan.h.
References m_value.
Referenced by lldb_private::RegisterContextUnwind::ReadFrameAddress().
|
inline |
Definition at line 301 of file UnwindPlan.h.
References isDWARFExpression, m_type, m_value, and opcodes.
|
inline |
Definition at line 311 of file UnwindPlan.h.
References isDWARFExpression, m_type, and m_value.
Referenced by lldb_private::RegisterContextUnwind::ReadFrameAddress().
|
inline |
Definition at line 317 of file UnwindPlan.h.
References isDWARFExpression, m_type, and m_value.
Referenced by lldb_private::RegisterContextUnwind::ReadFrameAddress().
|
inline |
Definition at line 280 of file UnwindPlan.h.
References isRaSearch, isRegisterPlusOffset, m_type, and m_value.
Referenced by lldb_private::x86AssemblyInspectionEngine::AugmentUnwindPlanFromCallSite(), UnwindAssembly_x86::AugmentUnwindPlanFromCallSite(), lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), and lldb_private::RegisterContextUnwind::ReadFrameAddress().
|
inline |
Definition at line 272 of file UnwindPlan.h.
References isRegisterDereferenced, isRegisterPlusOffset, LLDB_INVALID_REGNUM, m_type, and m_value.
Referenced by lldb_private::x86AssemblyInspectionEngine::AugmentUnwindPlanFromCallSite(), UnwindAssembly_x86::AugmentUnwindPlanFromCallSite(), lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), and lldb_private::RegisterContextUnwind::ReadFrameAddress().
|
inline |
Definition at line 278 of file UnwindPlan.h.
References m_type.
Referenced by UnwindAssembly_x86::AugmentUnwindPlanFromCallSite(), lldb_private::RegisterContextUnwind::ForceSwitchToFallbackUnwindPlan(), lldb_private::UnwindPlan::PlanValidAtAddress(), lldb_private::RegisterContextUnwind::ReadFrameAddress(), and lldb_private::RegisterContextUnwind::TryFallbackUnwindPlan().
|
inline |
Definition at line 291 of file UnwindPlan.h.
References isRegisterPlusOffset, m_type, and m_value.
Referenced by lldb_private::x86AssemblyInspectionEngine::AugmentUnwindPlanFromCallSite().
|
inline |
Definition at line 263 of file UnwindPlan.h.
References isConstant, and m_type.
|
inline |
Definition at line 255 of file UnwindPlan.h.
References isDWARFExpression, and m_type.
|
inline |
Definition at line 246 of file UnwindPlan.h.
References isRegisterDereferenced, and m_type.
|
inline |
Definition at line 236 of file UnwindPlan.h.
References isRegisterPlusOffset, and m_type.
|
inline |
Definition at line 229 of file UnwindPlan.h.
References m_type, and unspecified.
Definition at line 225 of file UnwindPlan.h.
References FAValue().
Definition at line 174 of file UnwindPlan.cpp.
References constant, expr, isConstant, isDWARFExpression, isRaSearch, isRegisterDereferenced, isRegisterPlusOffset, length, m_type, m_value, offset, opcodes, ra_search_offset, reg, reg_num, and unspecified.
|
inline |
Definition at line 265 of file UnwindPlan.h.
References constant, isConstant, m_type, and m_value.
|
inline |
Definition at line 257 of file UnwindPlan.h.
References isDWARFExpression, m_type, m_value, and opcodes.
Referenced by lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), lldb_private::breakpad::SymbolFileBreakpad::ParseCFIUnwindRow(), and lldb_private::breakpad::SymbolFileBreakpad::ParseWinUnwindPlan().
|
inline |
Definition at line 250 of file UnwindPlan.h.
References isRegisterDereferenced, m_type, m_value, and reg_num.
Referenced by ABISysV_ppc64::CreateDefaultUnwindPlan(), and ABISysV_ppc::CreateDefaultUnwindPlan().
|
inline |
Definition at line 240 of file UnwindPlan.h.
References isRegisterPlusOffset, m_type, m_value, offset, and reg_num.
Referenced by lldb_private::x86AssemblyInspectionEngine::AugmentUnwindPlanFromCallSite(), EHProgramRange::BuildUnwindPlanRow(), ABIAArch64::CreateDefaultUnwindPlan(), ABIMacOSX_arm::CreateDefaultUnwindPlan(), ABIMacOSX_i386::CreateDefaultUnwindPlan(), ABISysV_arm::CreateDefaultUnwindPlan(), ABISysV_hexagon::CreateDefaultUnwindPlan(), ABISysV_i386::CreateDefaultUnwindPlan(), ABISysV_loongarch::CreateDefaultUnwindPlan(), ABISysV_mips64::CreateDefaultUnwindPlan(), ABISysV_mips::CreateDefaultUnwindPlan(), ABISysV_msp430::CreateDefaultUnwindPlan(), ABISysV_riscv::CreateDefaultUnwindPlan(), ABISysV_x86_64::CreateDefaultUnwindPlan(), ABIWindows_x86_64::CreateDefaultUnwindPlan(), EmulateInstructionARM64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS::CreateFunctionEntryUnwind(), lldb_private::EmulateInstructionARM::CreateFunctionEntryUnwind(), lldb_private::EmulateInstructionPPC64::CreateFunctionEntryUnwind(), lldb_private::EmulateInstructionRISCV::CreateFunctionEntryUnwind(), ABIAArch64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_arm::CreateFunctionEntryUnwindPlan(), ABIMacOSX_i386::CreateFunctionEntryUnwindPlan(), ABISysV_arc::CreateFunctionEntryUnwindPlan(), ABISysV_arm::CreateFunctionEntryUnwindPlan(), ABISysV_hexagon::CreateFunctionEntryUnwindPlan(), ABISysV_i386::CreateFunctionEntryUnwindPlan(), ABISysV_loongarch::CreateFunctionEntryUnwindPlan(), ABISysV_mips64::CreateFunctionEntryUnwindPlan(), ABISysV_mips::CreateFunctionEntryUnwindPlan(), ABISysV_msp430::CreateFunctionEntryUnwindPlan(), ABISysV_ppc64::CreateFunctionEntryUnwindPlan(), ABISysV_ppc::CreateFunctionEntryUnwindPlan(), ABISysV_riscv::CreateFunctionEntryUnwindPlan(), ABISysV_s390x::CreateFunctionEntryUnwindPlan(), ABISysV_x86_64::CreateFunctionEntryUnwindPlan(), ABIWindows_x86_64::CreateFunctionEntryUnwindPlan(), lldb_private::CompactUnwindInfo::CreateUnwindPlan_arm64(), lldb_private::CompactUnwindInfo::CreateUnwindPlan_armv7(), lldb_private::CompactUnwindInfo::CreateUnwindPlan_i386(), lldb_private::CompactUnwindInfo::CreateUnwindPlan_x86_64(), GetAArch64TrapHandlerUnwindPlan(), lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::ArmUnwindInfo::GetUnwindPlan(), and lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode().
|
inline |
Definition at line 296 of file UnwindPlan.h.
References isRegisterPlusOffset, m_type, m_value, and offset.
|
inline |
Definition at line 231 of file UnwindPlan.h.
References isRaSearch, m_type, m_value, and offset.
Referenced by lldb_private::breakpad::SymbolFileBreakpad::ParseWinUnwindPlan().
|
inline |
Definition at line 227 of file UnwindPlan.h.
References m_type, and unspecified.
uint64_t lldb_private::UnwindPlan::Row::FAValue::constant |
Definition at line 343 of file UnwindPlan.h.
Referenced by operator==(), and SetIsConstant().
struct { ... } lldb_private::UnwindPlan::Row::FAValue::expr |
Referenced by operator==().
uint16_t lldb_private::UnwindPlan::Row::FAValue::length |
Definition at line 338 of file UnwindPlan.h.
Referenced by operator==().
|
private |
Definition at line 326 of file UnwindPlan.h.
Referenced by Dump(), GetDWARFExpr(), GetDWARFExpressionBytes(), GetDWARFExpressionLength(), GetOffset(), GetRegisterNumber(), GetValueType(), IncOffset(), IsConstant(), IsDWARFExpression(), IsRegisterDereferenced(), IsRegisterPlusOffset(), IsUnspecified(), operator==(), SetIsConstant(), SetIsDWARFExpression(), SetIsRegisterDereferenced(), SetIsRegisterPlusOffset(), SetOffset(), SetRaSearch(), and SetUnspecified().
union { ... } lldb_private::UnwindPlan::Row::FAValue::m_value |
Referenced by Dump(), FAValue(), GetConstant(), GetDWARFExpr(), GetDWARFExpressionBytes(), GetDWARFExpressionLength(), GetOffset(), GetRegisterNumber(), IncOffset(), operator==(), SetIsConstant(), SetIsDWARFExpression(), SetIsRegisterDereferenced(), SetIsRegisterPlusOffset(), SetOffset(), and SetRaSearch().
int32_t lldb_private::UnwindPlan::Row::FAValue::offset |
Definition at line 333 of file UnwindPlan.h.
Referenced by operator==(), SetIsRegisterPlusOffset(), SetOffset(), and SetRaSearch().
const uint8_t* lldb_private::UnwindPlan::Row::FAValue::opcodes |
Definition at line 337 of file UnwindPlan.h.
Referenced by GetDWARFExpr(), operator==(), and SetIsDWARFExpression().
int32_t lldb_private::UnwindPlan::Row::FAValue::ra_search_offset |
Definition at line 341 of file UnwindPlan.h.
Referenced by operator==().
struct { ... } lldb_private::UnwindPlan::Row::FAValue::reg |
Referenced by operator==().
uint32_t lldb_private::UnwindPlan::Row::FAValue::reg_num |
Definition at line 331 of file UnwindPlan.h.
Referenced by operator==(), SetIsRegisterDereferenced(), and SetIsRegisterPlusOffset().