LLDB  mainline
Classes | Public Types | Public Member Functions | List of all members
lldb_private::UnwindPlan Class Reference

#include <UnwindPlan.h>

Classes

class  Row
 

Public Types

typedef std::shared_ptr< RowRowSP
 

Public Member Functions

 UnwindPlan (lldb::RegisterKind reg_kind)
 
 UnwindPlan (const UnwindPlan &rhs)
 
 ~UnwindPlan ()=default
 
void Dump (Stream &s, Thread *thread, lldb::addr_t base_addr) const
 
void AppendRow (const RowSP &row_sp)
 
void InsertRow (const RowSP &row_sp, bool replace_existing=false)
 
UnwindPlan::RowSP GetRowForFunctionOffset (int offset) const
 
lldb::RegisterKind GetRegisterKind () const
 
void SetRegisterKind (lldb::RegisterKind kind)
 
void SetReturnAddressRegister (uint32_t regnum)
 
uint32_t GetReturnAddressRegister (void)
 
uint32_t GetInitialCFARegister () const
 
void SetPlanValidAddressRange (const AddressRange &range)
 
const AddressRangeGetAddressRange () const
 
bool PlanValidAtAddress (Address addr)
 
bool IsValidRowIndex (uint32_t idx) const
 
const UnwindPlan::RowSP GetRowAtIndex (uint32_t idx) const
 
const UnwindPlan::RowSP GetLastRow () const
 
lldb_private::ConstString GetSourceName () const
 
void SetSourceName (const char *)
 
lldb_private::LazyBool GetSourcedFromCompiler () const
 
void SetSourcedFromCompiler (lldb_private::LazyBool from_compiler)
 
lldb_private::LazyBool GetUnwindPlanValidAtAllInstructions () const
 
void SetUnwindPlanValidAtAllInstructions (lldb_private::LazyBool valid_at_all_insn)
 
int GetRowCount () const
 
void Clear ()
 
const RegisterInfo * GetRegisterInfo (Thread *thread, uint32_t reg_num) const
 
Address GetLSDAAddress () const
 
void SetLSDAAddress (Address lsda_addr)
 
Address GetPersonalityFunctionPtr () const
 
void SetPersonalityFunctionPtr (Address presonality_func_ptr)
 

Detailed Description

Definition at line 53 of file UnwindPlan.h.

Member Typedef Documentation

◆ RowSP

typedef std::shared_ptr<Row> lldb_private::UnwindPlan::RowSP

Definition at line 366 of file UnwindPlan.h.

Constructor & Destructor Documentation

◆ UnwindPlan() [1/2]

lldb_private::UnwindPlan::UnwindPlan ( lldb::RegisterKind  reg_kind)
inline

Definition at line 368 of file UnwindPlan.h.

◆ UnwindPlan() [2/2]

lldb_private::UnwindPlan::UnwindPlan ( const UnwindPlan rhs)
inline

◆ ~UnwindPlan()

lldb_private::UnwindPlan::~UnwindPlan ( )
default

Referenced by UnwindPlan().

Member Function Documentation

◆ AppendRow()

void UnwindPlan::AppendRow ( const RowSP row_sp)

Definition at line 355 of file UnwindPlan.cpp.

Referenced by lldb_private::x86AssemblyInspectionEngine::AugmentUnwindPlanFromCallSite(), ABIMacOSX_arm64::CreateDefaultUnwindPlan(), ABIMacOSX_arm::CreateDefaultUnwindPlan(), ABISysV_arm::CreateDefaultUnwindPlan(), ABISysV_arm64::CreateDefaultUnwindPlan(), ABIMacOSX_i386::CreateDefaultUnwindPlan(), ABISysV_mips::CreateDefaultUnwindPlan(), ABISysV_mips64::CreateDefaultUnwindPlan(), ABISysV_ppc::CreateDefaultUnwindPlan(), ABISysV_ppc64::CreateDefaultUnwindPlan(), ABISysV_x86_64::CreateDefaultUnwindPlan(), ABISysV_i386::CreateDefaultUnwindPlan(), ABISysV_hexagon::CreateDefaultUnwindPlan(), lldb_private::EmulateInstructionPPC64::CreateFunctionEntryUnwind(), EmulateInstructionARM64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS::CreateFunctionEntryUnwind(), lldb_private::EmulateInstructionARM::CreateFunctionEntryUnwind(), ABIMacOSX_arm64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_arm::CreateFunctionEntryUnwindPlan(), ABISysV_arm::CreateFunctionEntryUnwindPlan(), ABISysV_arm64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_i386::CreateFunctionEntryUnwindPlan(), ABISysV_ppc::CreateFunctionEntryUnwindPlan(), ABISysV_mips64::CreateFunctionEntryUnwindPlan(), ABISysV_ppc64::CreateFunctionEntryUnwindPlan(), ABISysV_s390x::CreateFunctionEntryUnwindPlan(), ABISysV_mips::CreateFunctionEntryUnwindPlan(), ABISysV_x86_64::CreateFunctionEntryUnwindPlan(), ABISysV_i386::CreateFunctionEntryUnwindPlan(), ABISysV_hexagon::CreateFunctionEntryUnwindPlan(), lldb_private::DWARFCallFrameInfo::GetFunctionAddressAndSizeVector(), lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::ArmUnwindInfo::GetUnwindPlan(), translate_to_eh_frame_regnum_i386(), translate_to_eh_frame_regnum_x86_64(), and UnwindPlan().

◆ Clear()

void lldb_private::UnwindPlan::Clear ( )
inline

Definition at line 468 of file UnwindPlan.h.

References lldb_private::eLazyBoolCalculate, lldb::eRegisterKindDWARF, lldb_private::UnwindPlan::Row::GetRegisterInfo(), and lldb_private::UnwindPlan::Row::RegisterLocation::reg_num.

Referenced by ABIMacOSX_arm64::CreateDefaultUnwindPlan(), ABIMacOSX_arm::CreateDefaultUnwindPlan(), ABISysV_arm::CreateDefaultUnwindPlan(), ABISysV_arm64::CreateDefaultUnwindPlan(), ABIMacOSX_i386::CreateDefaultUnwindPlan(), ABISysV_mips::CreateDefaultUnwindPlan(), ABISysV_mips64::CreateDefaultUnwindPlan(), ABISysV_ppc::CreateDefaultUnwindPlan(), ABISysV_ppc64::CreateDefaultUnwindPlan(), ABISysV_x86_64::CreateDefaultUnwindPlan(), ABISysV_i386::CreateDefaultUnwindPlan(), ABISysV_hexagon::CreateDefaultUnwindPlan(), lldb_private::EmulateInstructionPPC64::CreateFunctionEntryUnwind(), EmulateInstructionARM64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS::CreateFunctionEntryUnwind(), lldb_private::EmulateInstructionARM::CreateFunctionEntryUnwind(), lldb_private::EmulateInstruction::CreateFunctionEntryUnwind(), ABIMacOSX_arm64::CreateFunctionEntryUnwindPlan(), ABISysV_arm::CreateFunctionEntryUnwindPlan(), ABIMacOSX_arm::CreateFunctionEntryUnwindPlan(), ABISysV_arm64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_i386::CreateFunctionEntryUnwindPlan(), ABISysV_ppc::CreateFunctionEntryUnwindPlan(), ABISysV_x86_64::CreateFunctionEntryUnwindPlan(), ABISysV_s390x::CreateFunctionEntryUnwindPlan(), ABISysV_ppc64::CreateFunctionEntryUnwindPlan(), ABISysV_mips::CreateFunctionEntryUnwindPlan(), ABISysV_mips64::CreateFunctionEntryUnwindPlan(), ABISysV_i386::CreateFunctionEntryUnwindPlan(), ABISysV_hexagon::CreateFunctionEntryUnwindPlan(), and lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly().

◆ Dump()

void UnwindPlan::Dump ( Stream s,
Thread thread,
lldb::addr_t  base_addr 
) const

◆ GetAddressRange()

const AddressRange& lldb_private::UnwindPlan::GetAddressRange ( ) const
inline

◆ GetInitialCFARegister()

uint32_t lldb_private::UnwindPlan::GetInitialCFARegister ( ) const
inline

◆ GetLastRow()

const UnwindPlan::RowSP UnwindPlan::GetLastRow ( ) const

◆ GetLSDAAddress()

Address lldb_private::UnwindPlan::GetLSDAAddress ( ) const
inline

Definition at line 481 of file UnwindPlan.h.

◆ GetPersonalityFunctionPtr()

Address lldb_private::UnwindPlan::GetPersonalityFunctionPtr ( ) const
inline

Definition at line 485 of file UnwindPlan.h.

◆ GetRegisterInfo()

const RegisterInfo * UnwindPlan::GetRegisterInfo ( Thread thread,
uint32_t  reg_num 
) const

◆ GetRegisterKind()

lldb::RegisterKind lldb_private::UnwindPlan::GetRegisterKind ( ) const
inline

◆ GetReturnAddressRegister()

uint32_t lldb_private::UnwindPlan::GetReturnAddressRegister ( void  )
inline

Definition at line 414 of file UnwindPlan.h.

◆ GetRowAtIndex()

const UnwindPlan::RowSP UnwindPlan::GetRowAtIndex ( uint32_t  idx) const

◆ GetRowCount()

int UnwindPlan::GetRowCount ( ) const

◆ GetRowForFunctionOffset()

UnwindPlan::RowSP UnwindPlan::GetRowForFunctionOffset ( int  offset) const

◆ GetSourcedFromCompiler()

lldb_private::LazyBool lldb_private::UnwindPlan::GetSourcedFromCompiler ( ) const
inline

Definition at line 444 of file UnwindPlan.h.

◆ GetSourceName()

ConstString UnwindPlan::GetSourceName ( ) const

◆ GetUnwindPlanValidAtAllInstructions()

lldb_private::LazyBool lldb_private::UnwindPlan::GetUnwindPlanValidAtAllInstructions ( ) const
inline

Definition at line 455 of file UnwindPlan.h.

◆ InsertRow()

void UnwindPlan::InsertRow ( const RowSP row_sp,
bool  replace_existing = false 
)

◆ IsValidRowIndex()

bool UnwindPlan::IsValidRowIndex ( uint32_t  idx) const

◆ PlanValidAtAddress()

bool UnwindPlan::PlanValidAtAddress ( Address  addr)

◆ SetLSDAAddress()

void lldb_private::UnwindPlan::SetLSDAAddress ( Address  lsda_addr)
inline

◆ SetPersonalityFunctionPtr()

void lldb_private::UnwindPlan::SetPersonalityFunctionPtr ( Address  presonality_func_ptr)
inline

◆ SetPlanValidAddressRange()

void UnwindPlan::SetPlanValidAddressRange ( const AddressRange range)

◆ SetRegisterKind()

void lldb_private::UnwindPlan::SetRegisterKind ( lldb::RegisterKind  kind)
inline

Definition at line 408 of file UnwindPlan.h.

Referenced by ABIMacOSX_arm64::CreateDefaultUnwindPlan(), ABIMacOSX_arm::CreateDefaultUnwindPlan(), ABISysV_arm::CreateDefaultUnwindPlan(), ABISysV_arm64::CreateDefaultUnwindPlan(), ABIMacOSX_i386::CreateDefaultUnwindPlan(), ABISysV_mips::CreateDefaultUnwindPlan(), ABISysV_mips64::CreateDefaultUnwindPlan(), ABISysV_ppc::CreateDefaultUnwindPlan(), ABISysV_ppc64::CreateDefaultUnwindPlan(), ABISysV_x86_64::CreateDefaultUnwindPlan(), ABISysV_i386::CreateDefaultUnwindPlan(), ABISysV_hexagon::CreateDefaultUnwindPlan(), lldb_private::EmulateInstructionPPC64::CreateFunctionEntryUnwind(), EmulateInstructionARM64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS::CreateFunctionEntryUnwind(), lldb_private::EmulateInstructionARM::CreateFunctionEntryUnwind(), ABIMacOSX_arm64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_arm::CreateFunctionEntryUnwindPlan(), ABISysV_arm::CreateFunctionEntryUnwindPlan(), ABISysV_arm64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_i386::CreateFunctionEntryUnwindPlan(), ABISysV_mips64::CreateFunctionEntryUnwindPlan(), ABISysV_x86_64::CreateFunctionEntryUnwindPlan(), ABISysV_ppc64::CreateFunctionEntryUnwindPlan(), ABISysV_mips::CreateFunctionEntryUnwindPlan(), ABISysV_ppc::CreateFunctionEntryUnwindPlan(), ABISysV_s390x::CreateFunctionEntryUnwindPlan(), ABISysV_i386::CreateFunctionEntryUnwindPlan(), ABISysV_hexagon::CreateFunctionEntryUnwindPlan(), lldb_private::DWARFCallFrameInfo::GetFunctionAddressAndSizeVector(), lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::ArmUnwindInfo::GetUnwindPlan(), translate_to_eh_frame_regnum_i386(), and translate_to_eh_frame_regnum_x86_64().

◆ SetReturnAddressRegister()

void lldb_private::UnwindPlan::SetReturnAddressRegister ( uint32_t  regnum)
inline

◆ SetSourcedFromCompiler()

void lldb_private::UnwindPlan::SetSourcedFromCompiler ( lldb_private::LazyBool  from_compiler)
inline

Definition at line 449 of file UnwindPlan.h.

Referenced by lldb_private::x86AssemblyInspectionEngine::AugmentUnwindPlanFromCallSite(), ABIMacOSX_arm64::CreateDefaultUnwindPlan(), ABIMacOSX_arm::CreateDefaultUnwindPlan(), ABISysV_arm::CreateDefaultUnwindPlan(), ABISysV_arm64::CreateDefaultUnwindPlan(), ABIMacOSX_i386::CreateDefaultUnwindPlan(), ABISysV_mips::CreateDefaultUnwindPlan(), ABISysV_mips64::CreateDefaultUnwindPlan(), ABISysV_ppc::CreateDefaultUnwindPlan(), ABISysV_ppc64::CreateDefaultUnwindPlan(), ABISysV_x86_64::CreateDefaultUnwindPlan(), ABISysV_i386::CreateDefaultUnwindPlan(), ABISysV_hexagon::CreateDefaultUnwindPlan(), lldb_private::EmulateInstructionPPC64::CreateFunctionEntryUnwind(), EmulateInstructionARM64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS::CreateFunctionEntryUnwind(), lldb_private::EmulateInstructionARM::CreateFunctionEntryUnwind(), ABIMacOSX_arm64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_arm::CreateFunctionEntryUnwindPlan(), ABISysV_arm::CreateFunctionEntryUnwindPlan(), ABISysV_arm64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_i386::CreateFunctionEntryUnwindPlan(), ABISysV_mips64::CreateFunctionEntryUnwindPlan(), ABISysV_x86_64::CreateFunctionEntryUnwindPlan(), ABISysV_ppc64::CreateFunctionEntryUnwindPlan(), ABISysV_mips::CreateFunctionEntryUnwindPlan(), ABISysV_ppc::CreateFunctionEntryUnwindPlan(), ABISysV_s390x::CreateFunctionEntryUnwindPlan(), ABISysV_i386::CreateFunctionEntryUnwindPlan(), ABISysV_hexagon::CreateFunctionEntryUnwindPlan(), lldb_private::DWARFCallFrameInfo::GetFunctionAddressAndSizeVector(), lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::ArmUnwindInfo::GetUnwindPlan(), translate_to_eh_frame_regnum_i386(), and translate_to_eh_frame_regnum_x86_64().

◆ SetSourceName()

void UnwindPlan::SetSourceName ( const char *  source)

Definition at line 542 of file UnwindPlan.cpp.

Referenced by lldb_private::x86AssemblyInspectionEngine::AugmentUnwindPlanFromCallSite(), ABIMacOSX_arm64::CreateDefaultUnwindPlan(), ABIMacOSX_arm::CreateDefaultUnwindPlan(), ABISysV_arm::CreateDefaultUnwindPlan(), ABISysV_arm64::CreateDefaultUnwindPlan(), ABIMacOSX_i386::CreateDefaultUnwindPlan(), ABISysV_mips::CreateDefaultUnwindPlan(), ABISysV_mips64::CreateDefaultUnwindPlan(), ABISysV_ppc::CreateDefaultUnwindPlan(), ABISysV_ppc64::CreateDefaultUnwindPlan(), ABISysV_x86_64::CreateDefaultUnwindPlan(), ABISysV_i386::CreateDefaultUnwindPlan(), ABISysV_hexagon::CreateDefaultUnwindPlan(), lldb_private::EmulateInstructionPPC64::CreateFunctionEntryUnwind(), EmulateInstructionARM64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS64::CreateFunctionEntryUnwind(), EmulateInstructionMIPS::CreateFunctionEntryUnwind(), lldb_private::EmulateInstructionARM::CreateFunctionEntryUnwind(), ABIMacOSX_arm64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_arm::CreateFunctionEntryUnwindPlan(), ABISysV_arm::CreateFunctionEntryUnwindPlan(), ABISysV_arm64::CreateFunctionEntryUnwindPlan(), ABIMacOSX_i386::CreateFunctionEntryUnwindPlan(), ABISysV_ppc::CreateFunctionEntryUnwindPlan(), ABISysV_mips64::CreateFunctionEntryUnwindPlan(), ABISysV_ppc64::CreateFunctionEntryUnwindPlan(), ABISysV_s390x::CreateFunctionEntryUnwindPlan(), ABISysV_mips::CreateFunctionEntryUnwindPlan(), ABISysV_x86_64::CreateFunctionEntryUnwindPlan(), ABISysV_i386::CreateFunctionEntryUnwindPlan(), ABISysV_hexagon::CreateFunctionEntryUnwindPlan(), GetAddressRange(), lldb_private::DWARFCallFrameInfo::GetFunctionAddressAndSizeVector(), lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::ArmUnwindInfo::GetUnwindPlan(), translate_to_eh_frame_regnum_i386(), and translate_to_eh_frame_regnum_x86_64().

◆ SetUnwindPlanValidAtAllInstructions()

void lldb_private::UnwindPlan::SetUnwindPlanValidAtAllInstructions ( lldb_private::LazyBool  valid_at_all_insn)
inline

The documentation for this class was generated from the following files: