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 57 of file UnwindPlan.h.

Member Enumeration Documentation

◆ RestoreType

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

Definition at line 59 of file UnwindPlan.h.

Constructor & Destructor Documentation

◆ AbstractRegisterLocation()

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

Definition at line 75 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 116 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 164 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 178 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 184 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 149 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 143 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 99 of file UnwindPlan.h.

References isAFAPlusOffset, and m_type.

◆ IsAtAFAPlusOffset()

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

Definition at line 101 of file UnwindPlan.h.

References atAFAPlusOffset, and m_type.

◆ IsAtCFAPlusOffset()

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

Definition at line 97 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 105 of file UnwindPlan.h.

References atDWARFExpression, and m_type.

◆ IsCFAPlusOffset()

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

Definition at line 95 of file UnwindPlan.h.

References isCFAPlusOffset, and m_type.

◆ IsConstant()

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

Definition at line 109 of file UnwindPlan.h.

References isConstant, and m_type.

◆ IsDWARFExpression()

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

Definition at line 107 of file UnwindPlan.h.

References isDWARFExpression, and m_type.

◆ IsInOtherRegister()

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

Definition at line 103 of file UnwindPlan.h.

References inOtherRegister, and m_type.

◆ IsSame()

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

Definition at line 89 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 93 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 91 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 79 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 133 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 83 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 206 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 203 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 202 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 199 of file UnwindPlan.h.

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


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