LLDB mainline
lldb_private::UnwindPlan::Row::AbstractRegisterLocation Class Reference

#include <UnwindPlan.h>

Public Types

enum  RestoreType {
  unspecified , undefined , same , atCFAPlusOffset ,
  isCFAPlusOffset , atAFAPlusOffset , isAFAPlusOffset , inOtherRegister ,
  atDWARFExpression , isDWARFExpression , isConstant
}

Public Member Functions

 AbstractRegisterLocation ()
bool operator== (const AbstractRegisterLocation &rhs) const
bool operator!= (const AbstractRegisterLocation &rhs) const
void SetUnspecified ()
void SetUndefined ()
void SetSame ()
bool IsSame () const
bool IsUnspecified () const
bool IsUndefined () const
bool IsCFAPlusOffset () const
bool IsAtCFAPlusOffset () const
bool IsAFAPlusOffset () const
bool IsAtAFAPlusOffset () const
bool IsInOtherRegister () const
bool IsAtDWARFExpression () const
bool IsDWARFExpression () const
bool IsConstant () const
void SetIsConstant (uint64_t value)
uint64_t GetConstant () const
void SetAtCFAPlusOffset (int32_t offset)
void SetIsCFAPlusOffset (int32_t offset)
void SetAtAFAPlusOffset (int32_t offset)
void SetIsAFAPlusOffset (int32_t offset)
void SetInRegister (uint32_t reg_num)
uint32_t GetRegisterNumber () const
RestoreType GetLocationType () const
int32_t GetOffset () const
void GetDWARFExpr (const uint8_t **opcodes, uint16_t &len) const
void SetAtDWARFExpression (const uint8_t *opcodes, uint32_t len)
void SetIsDWARFExpression (const uint8_t *opcodes, uint32_t len)
const uint8_t * GetDWARFExpressionBytes () const
int GetDWARFExpressionLength () const
void Dump (Stream &s, const UnwindPlan *unwind_plan, const UnwindPlan::Row *row, Thread *thread, bool verbose) const

Private Attributes

RestoreType m_type = unspecified
union { 
   int32_t   offset 
   uint32_t   reg_num 
   struct { 
      const uint8_t *   opcodes 
      uint16_t   length 
   }   expr
   uint64_t   constant_value 
m_location

Detailed Description

Definition at line 58 of file UnwindPlan.h.

Member Enumeration Documentation

◆ RestoreType

Enumerator
unspecified 
undefined 
same 
atCFAPlusOffset 
isCFAPlusOffset 
atAFAPlusOffset 
isAFAPlusOffset 
inOtherRegister 
atDWARFExpression 
isDWARFExpression 
isConstant 

Definition at line 60 of file UnwindPlan.h.

Constructor & Destructor Documentation

◆ AbstractRegisterLocation()

lldb_private::UnwindPlan::Row::AbstractRegisterLocation::AbstractRegisterLocation ( )
inline

Definition at line 76 of file UnwindPlan.h.

References m_location.

Referenced by operator!=().

Member Function Documentation

◆ Dump()

◆ GetConstant()

uint64_t lldb_private::UnwindPlan::Row::AbstractRegisterLocation::GetConstant ( ) const
inline

Definition at line 117 of file UnwindPlan.h.

References m_location.

◆ GetDWARFExpr()

void lldb_private::UnwindPlan::Row::AbstractRegisterLocation::GetDWARFExpr ( const uint8_t ** opcodes,
uint16_t & len ) const
inline

Definition at line 165 of file UnwindPlan.h.

References atDWARFExpression, isDWARFExpression, m_location, m_type, and opcodes.

◆ GetDWARFExpressionBytes()

const uint8_t * lldb_private::UnwindPlan::Row::AbstractRegisterLocation::GetDWARFExpressionBytes ( ) const
inline

Definition at line 179 of file UnwindPlan.h.

References atDWARFExpression, isDWARFExpression, m_location, and m_type.

◆ GetDWARFExpressionLength()

int lldb_private::UnwindPlan::Row::AbstractRegisterLocation::GetDWARFExpressionLength ( ) const
inline

Definition at line 185 of file UnwindPlan.h.

References atDWARFExpression, isDWARFExpression, m_location, and m_type.

◆ GetLocationType()

RestoreType lldb_private::UnwindPlan::Row::AbstractRegisterLocation::GetLocationType ( ) const
inline

Definition at line 150 of file UnwindPlan.h.

References m_type.

◆ GetOffset()

int32_t lldb_private::UnwindPlan::Row::AbstractRegisterLocation::GetOffset ( ) const
inline

◆ GetRegisterNumber()

uint32_t lldb_private::UnwindPlan::Row::AbstractRegisterLocation::GetRegisterNumber ( ) const
inline

Definition at line 144 of file UnwindPlan.h.

References inOtherRegister, LLDB_INVALID_REGNUM, m_location, and m_type.

◆ IsAFAPlusOffset()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsAFAPlusOffset ( ) const
inline

Definition at line 100 of file UnwindPlan.h.

References isAFAPlusOffset, and m_type.

◆ IsAtAFAPlusOffset()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsAtAFAPlusOffset ( ) const
inline

Definition at line 102 of file UnwindPlan.h.

References atAFAPlusOffset, and m_type.

◆ IsAtCFAPlusOffset()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsAtCFAPlusOffset ( ) const
inline

Definition at line 98 of file UnwindPlan.h.

References atCFAPlusOffset, and m_type.

Referenced by UnwindAssembly_x86::AugmentUnwindPlanFromCallSite().

◆ IsAtDWARFExpression()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsAtDWARFExpression ( ) const
inline

Definition at line 106 of file UnwindPlan.h.

References atDWARFExpression, and m_type.

◆ IsCFAPlusOffset()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsCFAPlusOffset ( ) const
inline

Definition at line 96 of file UnwindPlan.h.

References isCFAPlusOffset, and m_type.

◆ IsConstant()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsConstant ( ) const
inline

Definition at line 110 of file UnwindPlan.h.

References isConstant, and m_type.

◆ IsDWARFExpression()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsDWARFExpression ( ) const
inline

Definition at line 108 of file UnwindPlan.h.

References isDWARFExpression, and m_type.

◆ IsInOtherRegister()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsInOtherRegister ( ) const
inline

Definition at line 104 of file UnwindPlan.h.

References inOtherRegister, and m_type.

◆ IsSame()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsSame ( ) const
inline

Definition at line 90 of file UnwindPlan.h.

References m_type, and same.

Referenced by lldb_private::RegisterContextUnwind::GetAbstractRegisterLocation().

◆ IsUndefined()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsUndefined ( ) const
inline

Definition at line 94 of file UnwindPlan.h.

References m_type, and undefined.

Referenced by lldb_private::RegisterContextUnwind::GetAbstractRegisterLocation().

◆ IsUnspecified()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::IsUnspecified ( ) const
inline

Definition at line 92 of file UnwindPlan.h.

References m_type, and unspecified.

◆ operator!=()

bool lldb_private::UnwindPlan::Row::AbstractRegisterLocation::operator!= ( const AbstractRegisterLocation & rhs) const
inline

Definition at line 80 of file UnwindPlan.h.

References AbstractRegisterLocation().

◆ operator==()

◆ SetAtAFAPlusOffset()

void lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetAtAFAPlusOffset ( int32_t offset)
inline

◆ SetAtCFAPlusOffset()

void lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetAtCFAPlusOffset ( int32_t offset)
inline

◆ SetAtDWARFExpression()

void UnwindPlan::Row::AbstractRegisterLocation::SetAtDWARFExpression ( const uint8_t * opcodes,
uint32_t len )

◆ SetInRegister()

void lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetInRegister ( uint32_t reg_num)
inline

◆ SetIsAFAPlusOffset()

void lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetIsAFAPlusOffset ( int32_t offset)
inline

Definition at line 134 of file UnwindPlan.h.

References isAFAPlusOffset, m_location, m_type, and offset.

◆ SetIsCFAPlusOffset()

◆ SetIsConstant()

void lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetIsConstant ( uint64_t value)
inline

◆ SetIsDWARFExpression()

◆ SetSame()

void lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetSame ( )
inline

◆ SetUndefined()

◆ SetUnspecified()

void lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetUnspecified ( )
inline

Definition at line 84 of file UnwindPlan.h.

References m_type, and unspecified.

Referenced by lldb_private::UnwindPlan::Row::SetRegisterLocationToUnspecified().

Member Data Documentation

◆ constant_value

uint64_t lldb_private::UnwindPlan::Row::AbstractRegisterLocation::constant_value

Definition at line 207 of file UnwindPlan.h.

Referenced by operator==().

◆ [struct]

struct { ... } lldb_private::UnwindPlan::Row::AbstractRegisterLocation::expr

Referenced by operator==().

◆ length

uint16_t lldb_private::UnwindPlan::Row::AbstractRegisterLocation::length

Definition at line 204 of file UnwindPlan.h.

Referenced by operator==().

◆ [union]

◆ m_type

◆ offset

int32_t lldb_private::UnwindPlan::Row::AbstractRegisterLocation::offset

◆ opcodes

const uint8_t* lldb_private::UnwindPlan::Row::AbstractRegisterLocation::opcodes

Definition at line 203 of file UnwindPlan.h.

Referenced by GetDWARFExpr(), operator==(), SetAtDWARFExpression(), and SetIsDWARFExpression().

◆ reg_num

uint32_t lldb_private::UnwindPlan::Row::AbstractRegisterLocation::reg_num

Definition at line 200 of file UnwindPlan.h.

Referenced by operator==(), and SetInRegister().


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