| LLDB mainline
    | 
#include <UnwindPlan.h>
| Classes | |
| class | AbstractRegisterLocation | 
| class | FAValue | 
| Public Member Functions | |
| Row () | |
| bool | operator== (const Row &rhs) const | 
| bool | GetRegisterInfo (uint32_t reg_num, AbstractRegisterLocation ®ister_location) const | 
| void | SetRegisterInfo (uint32_t reg_num, const AbstractRegisterLocation register_location) | 
| void | RemoveRegisterInfo (uint32_t reg_num) | 
| int64_t | GetOffset () const | 
| void | SetOffset (int64_t offset) | 
| void | SlideOffset (int64_t offset) | 
| const FAValue & | GetCFAValue () const | 
| FAValue & | GetCFAValue () | 
| const FAValue & | GetAFAValue () const | 
| FAValue & | GetAFAValue () | 
| bool | SetRegisterLocationToAtCFAPlusOffset (uint32_t reg_num, int32_t offset, bool can_replace) | 
| bool | SetRegisterLocationToIsCFAPlusOffset (uint32_t reg_num, int32_t offset, bool can_replace) | 
| bool | SetRegisterLocationToUndefined (uint32_t reg_num, bool can_replace, bool can_replace_only_if_unspecified) | 
| bool | SetRegisterLocationToUnspecified (uint32_t reg_num, bool can_replace) | 
| bool | SetRegisterLocationToRegister (uint32_t reg_num, uint32_t other_reg_num, bool can_replace) | 
| bool | SetRegisterLocationToSame (uint32_t reg_num, bool must_replace) | 
| bool | SetRegisterLocationToIsDWARFExpression (uint32_t reg_num, const uint8_t *opcodes, uint32_t len, bool can_replace) | 
| This method does not make a copy of the opcodes memory, it is assumed to have the same lifetime as the Module this UnwindPlan will be registered in. | |
| bool | SetRegisterLocationToIsConstant (uint32_t reg_num, uint64_t constant, bool can_replace) | 
| void | SetUnspecifiedRegistersAreUndefined (bool unspec_is_undef) | 
| bool | GetUnspecifiedRegistersAreUndefined () | 
| void | Clear () | 
| void | Dump (Stream &s, const UnwindPlan *unwind_plan, Thread *thread, lldb::addr_t base_addr) const | 
| Protected Types | |
| typedef std::map< uint32_t, AbstractRegisterLocation > | collection | 
| Protected Attributes | |
| int64_t | m_offset = 0 | 
| FAValue | m_cfa_value | 
| FAValue | m_afa_value | 
| collection | m_register_locations | 
| bool | m_unspecified_registers_are_undefined = false | 
Definition at line 55 of file UnwindPlan.h.
| 
 | protected | 
Definition at line 422 of file UnwindPlan.h.
| UnwindPlan::Row::Row | ( | ) | 
Definition at line 259 of file UnwindPlan.cpp.
References m_afa_value, m_cfa_value, and m_register_locations.
| void UnwindPlan::Row::Clear | ( | ) | 
Definition at line 227 of file UnwindPlan.cpp.
References m_afa_value, m_cfa_value, m_offset, m_register_locations, and m_unspecified_registers_are_undefined.
| void UnwindPlan::Row::Dump | ( | Stream & | s, | 
| const UnwindPlan * | unwind_plan, | ||
| Thread * | thread, | ||
| lldb::addr_t | base_addr ) const | 
Definition at line 235 of file UnwindPlan.cpp.
References DumpRegisterName(), GetOffset(), LLDB_INVALID_ADDRESS, m_afa_value, m_cfa_value, m_register_locations, lldb_private::Stream::Printf(), lldb_private::Stream::PutChar(), and lldb_private::UnwindPlan::UnwindPlan().
Referenced by lldb_private::RegisterContextUnwind::GetAbstractRegisterLocation(), lldb_private::RegisterContextUnwind::InitializeNonZerothFrame(), lldb_private::RegisterContextUnwind::InitializeZerothFrame(), and lldb_private::RegisterContextUnwind::TryAdoptArchitectureUnwindPlan().
| 
 | inline | 
Definition at line 369 of file UnwindPlan.h.
References m_afa_value.
| 
 | inline | 
Definition at line 368 of file UnwindPlan.h.
References m_afa_value.
Referenced by lldb_private::RegisterContextUnwind::ForceSwitchToFallbackUnwindPlan(), lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::RegisterContextUnwind::InitializeNonZerothFrame(), lldb_private::RegisterContextUnwind::InitializeZerothFrame(), and lldb_private::RegisterContextUnwind::TryFallbackUnwindPlan().
| 
 | inline | 
Definition at line 366 of file UnwindPlan.h.
References m_cfa_value.
| 
 | inline | 
Definition at line 365 of file UnwindPlan.h.
References m_cfa_value.
Referenced by lldb_private::x86AssemblyInspectionEngine::AugmentUnwindPlanFromCallSite(), UnwindAssembly_x86::AugmentUnwindPlanFromCallSite(), EHProgramRange::BuildUnwindPlanRow(), lldb_private::FuncUnwinders::CompareUnwindPlansForIdenticalInitialPCLocation(), 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_ppc64::CreateDefaultUnwindPlan(), ABISysV_ppc::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(), lldb_private::RegisterContextUnwind::ForceSwitchToFallbackUnwindPlan(), GetAArch64TrapHandlerUnwindPlan(), lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::ArmUnwindInfo::GetUnwindPlan(), lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), lldb_private::RegisterContextUnwind::InitializeNonZerothFrame(), lldb_private::RegisterContextUnwind::InitializeZerothFrame(), lldb_private::breakpad::SymbolFileBreakpad::ParseCFIUnwindRow(), lldb_private::breakpad::SymbolFileBreakpad::ParseWinUnwindPlan(), lldb_private::UnwindPlan::PlanValidAtAddress(), and lldb_private::RegisterContextUnwind::TryFallbackUnwindPlan().
| 
 | inline | 
Definition at line 359 of file UnwindPlan.h.
References m_offset.
Referenced by lldb_private::UnwindPlan::AppendRow(), lldb_private::x86AssemblyInspectionEngine::AugmentUnwindPlanFromCallSite(), UnwindAssembly_x86::AugmentUnwindPlanFromCallSite(), Dump(), lldb_private::UnwindPlan::InsertRow(), RowLess::operator()(), RowLess::operator()(), and lldb_private::DWARFCallFrameInfo::ParseFDE().
| bool UnwindPlan::Row::GetRegisterInfo | ( | uint32_t | reg_num, | 
| AbstractRegisterLocation & | register_location ) const | 
Definition at line 261 of file UnwindPlan.cpp.
References m_register_locations, m_unspecified_registers_are_undefined, and lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetUndefined().
Referenced by UnwindAssembly_x86::AugmentUnwindPlanFromCallSite(), lldb_private::FuncUnwinders::CompareUnwindPlansForIdenticalInitialPCLocation(), lldb_private::RegisterContextUnwind::GetAbstractRegisterLocation(), lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), and lldb_private::ArmUnwindInfo::GetUnwindPlan().
| 
 | inline | 
Definition at line 412 of file UnwindPlan.h.
References m_unspecified_registers_are_undefined.
Definition at line 387 of file UnwindPlan.cpp.
References m_afa_value, m_cfa_value, m_offset, m_register_locations, and m_unspecified_registers_are_undefined.
| void UnwindPlan::Row::RemoveRegisterInfo | ( | uint32_t | reg_num | ) | 
Definition at line 276 of file UnwindPlan.cpp.
References m_register_locations.
Referenced by lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), and lldb_private::DWARFCallFrameInfo::ParseFDE().
| 
 | inline | 
Definition at line 361 of file UnwindPlan.h.
References m_offset.
Referenced by lldb_private::x86AssemblyInspectionEngine::AugmentUnwindPlanFromCallSite(), EHProgramRange::BuildUnwindPlanRow(), ABISysV_x86_64::CreateDefaultUnwindPlan(), ABIWindows_x86_64::CreateDefaultUnwindPlan(), lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::breakpad::SymbolFileBreakpad::ParseCFIUnwindPlan(), and lldb_private::DWARFCallFrameInfo::ParseFDE().
| void UnwindPlan::Row::SetRegisterInfo | ( | uint32_t | reg_num, | 
| const AbstractRegisterLocation | register_location ) | 
Definition at line 283 of file UnwindPlan.cpp.
References m_register_locations.
Referenced by lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::ArmUnwindInfo::GetUnwindPlan(), lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), lldb_private::breakpad::SymbolFileBreakpad::ParseCFIUnwindRow(), lldb_private::DWARFCallFrameInfo::ParseFDE(), and lldb_private::breakpad::SymbolFileBreakpad::ParseWinUnwindPlan().
| bool UnwindPlan::Row::SetRegisterLocationToAtCFAPlusOffset | ( | uint32_t | reg_num, | 
| int32_t | offset, | ||
| bool | can_replace ) | 
Definition at line 289 of file UnwindPlan.cpp.
References m_register_locations, and lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetAtCFAPlusOffset().
Referenced by EHProgramRange::BuildUnwindPlanRow(), ABIAArch64::CreateDefaultUnwindPlan(), ABIMacOSX_arm::CreateDefaultUnwindPlan(), ABIMacOSX_i386::CreateDefaultUnwindPlan(), ABISysV_arm::CreateDefaultUnwindPlan(), ABISysV_hexagon::CreateDefaultUnwindPlan(), ABISysV_i386::CreateDefaultUnwindPlan(), ABISysV_loongarch::CreateDefaultUnwindPlan(), ABISysV_msp430::CreateDefaultUnwindPlan(), ABISysV_ppc64::CreateDefaultUnwindPlan(), ABISysV_ppc::CreateDefaultUnwindPlan(), ABISysV_riscv::CreateDefaultUnwindPlan(), ABISysV_x86_64::CreateDefaultUnwindPlan(), ABIWindows_x86_64::CreateDefaultUnwindPlan(), ABIMacOSX_i386::CreateFunctionEntryUnwindPlan(), ABISysV_i386::CreateFunctionEntryUnwindPlan(), ABISysV_msp430::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::ArchitectureArm::GetArchitectureUnwindPlan(), and lldb_private::ArmUnwindInfo::GetUnwindPlan().
| bool UnwindPlan::Row::SetRegisterLocationToIsCFAPlusOffset | ( | uint32_t | reg_num, | 
| int32_t | offset, | ||
| bool | can_replace ) | 
Definition at line 301 of file UnwindPlan.cpp.
References m_register_locations, and lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetIsCFAPlusOffset().
Referenced by EHProgramRange::BuildUnwindPlanRow(), ABIMacOSX_i386::CreateDefaultUnwindPlan(), ABISysV_hexagon::CreateDefaultUnwindPlan(), ABISysV_i386::CreateDefaultUnwindPlan(), ABISysV_msp430::CreateDefaultUnwindPlan(), ABISysV_ppc64::CreateDefaultUnwindPlan(), ABISysV_ppc::CreateDefaultUnwindPlan(), ABISysV_x86_64::CreateDefaultUnwindPlan(), ABIWindows_x86_64::CreateDefaultUnwindPlan(), ABIMacOSX_i386::CreateFunctionEntryUnwindPlan(), ABISysV_i386::CreateFunctionEntryUnwindPlan(), ABISysV_msp430::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(), and lldb_private::ArchitectureArm::GetArchitectureUnwindPlan().
| bool UnwindPlan::Row::SetRegisterLocationToIsConstant | ( | uint32_t | reg_num, | 
| uint64_t | constant, | ||
| bool | can_replace ) | 
Definition at line 375 of file UnwindPlan.cpp.
References m_register_locations, and lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetIsConstant().
| bool UnwindPlan::Row::SetRegisterLocationToIsDWARFExpression | ( | uint32_t | reg_num, | 
| const uint8_t * | opcodes, | ||
| uint32_t | len, | ||
| bool | can_replace ) | 
This method does not make a copy of the opcodes memory, it is assumed to have the same lifetime as the Module this UnwindPlan will be registered in.
Definition at line 364 of file UnwindPlan.cpp.
References m_register_locations, and lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetIsDWARFExpression().
| bool UnwindPlan::Row::SetRegisterLocationToRegister | ( | uint32_t | reg_num, | 
| uint32_t | other_reg_num, | ||
| bool | can_replace ) | 
Definition at line 341 of file UnwindPlan.cpp.
References m_register_locations, and lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetInRegister().
Referenced by ABISysV_mips64::CreateDefaultUnwindPlan(), ABISysV_mips::CreateDefaultUnwindPlan(), EmulateInstructionMIPS64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS::CreateFunctionEntryUnwind(), ABIAArch64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_arm::CreateFunctionEntryUnwindPlan(), ABISysV_arc::CreateFunctionEntryUnwindPlan(), ABISysV_arm::CreateFunctionEntryUnwindPlan(), ABISysV_hexagon::CreateFunctionEntryUnwindPlan(), ABISysV_loongarch::CreateFunctionEntryUnwindPlan(), ABISysV_mips64::CreateFunctionEntryUnwindPlan(), ABISysV_mips::CreateFunctionEntryUnwindPlan(), ABISysV_ppc64::CreateFunctionEntryUnwindPlan(), ABISysV_ppc::CreateFunctionEntryUnwindPlan(), ABISysV_riscv::CreateFunctionEntryUnwindPlan(), ABISysV_s390x::CreateFunctionEntryUnwindPlan(), lldb_private::CompactUnwindInfo::CreateUnwindPlan_arm64(), and lldb_private::ArmUnwindInfo::GetUnwindPlan().
Definition at line 353 of file UnwindPlan.cpp.
References m_register_locations, and lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetSame().
Referenced by EmulateInstructionARM64::CreateFunctionEntryUnwind(), and lldb_private::EmulateInstructionRISCV::CreateFunctionEntryUnwind().
| bool UnwindPlan::Row::SetRegisterLocationToUndefined | ( | uint32_t | reg_num, | 
| bool | can_replace, | ||
| bool | can_replace_only_if_unspecified ) | 
Definition at line 313 of file UnwindPlan.cpp.
References m_register_locations, and lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetUndefined().
Definition at line 330 of file UnwindPlan.cpp.
References m_register_locations, and lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetUnspecified().
Referenced by ABISysV_msp430::CreateDefaultUnwindPlan().
| 
 | inline | 
Definition at line 408 of file UnwindPlan.h.
References m_unspecified_registers_are_undefined.
Referenced by ABIAArch64::CreateDefaultUnwindPlan(), ABIMacOSX_arm::CreateDefaultUnwindPlan(), ABIMacOSX_i386::CreateDefaultUnwindPlan(), ABISysV_arm::CreateDefaultUnwindPlan(), ABISysV_hexagon::CreateDefaultUnwindPlan(), ABISysV_i386::CreateDefaultUnwindPlan(), ABISysV_mips64::CreateDefaultUnwindPlan(), ABISysV_mips::CreateDefaultUnwindPlan(), ABISysV_ppc64::CreateDefaultUnwindPlan(), ABISysV_ppc::CreateDefaultUnwindPlan(), ABISysV_x86_64::CreateDefaultUnwindPlan(), and ABIWindows_x86_64::CreateDefaultUnwindPlan().
| 
 | inline | 
Definition at line 363 of file UnwindPlan.h.
References m_offset.
Referenced by lldb_private::DWARFCallFrameInfo::GetUnwindPlan(), and lldb_private::DWARFCallFrameInfo::ParseFDE().
| 
 | protected | 
Definition at line 426 of file UnwindPlan.h.
Referenced by Clear(), Dump(), GetAFAValue(), GetAFAValue(), operator==(), and Row().
| 
 | protected | 
Definition at line 425 of file UnwindPlan.h.
Referenced by Clear(), Dump(), GetCFAValue(), GetCFAValue(), operator==(), and Row().
| 
 | protected | 
Definition at line 423 of file UnwindPlan.h.
Referenced by Clear(), GetOffset(), operator==(), SetOffset(), and SlideOffset().
| 
 | protected | 
Definition at line 427 of file UnwindPlan.h.
Referenced by Clear(), Dump(), GetRegisterInfo(), operator==(), RemoveRegisterInfo(), Row(), SetRegisterInfo(), SetRegisterLocationToAtCFAPlusOffset(), SetRegisterLocationToIsCFAPlusOffset(), SetRegisterLocationToIsConstant(), SetRegisterLocationToIsDWARFExpression(), SetRegisterLocationToRegister(), SetRegisterLocationToSame(), SetRegisterLocationToUndefined(), and SetRegisterLocationToUnspecified().
| 
 | protected | 
Definition at line 428 of file UnwindPlan.h.
Referenced by Clear(), GetRegisterInfo(), GetUnspecifiedRegistersAreUndefined(), operator==(), and SetUnspecifiedRegistersAreUndefined().