LLDB mainline
Public Types | Public Member Functions | Private Attributes | List of all members
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 ()
 
int GetDWARFExpressionLength ()
 
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.

Member Function Documentation

◆ Dump()

void UnwindPlan::Row::AbstractRegisterLocation::Dump ( Stream s,
const UnwindPlan unwind_plan,
const UnwindPlan::Row row,
Thread thread,
bool  verbose 
) const

◆ GetConstant()

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

Definition at line 116 of file UnwindPlan.h.

References m_location.

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

◆ 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 ( )
inline

◆ GetDWARFExpressionLength()

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

◆ 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

◆ IsAFAPlusOffset()

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

Definition at line 99 of file UnwindPlan.h.

References isAFAPlusOffset, and m_type.

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

◆ IsAtAFAPlusOffset()

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

Definition at line 101 of file UnwindPlan.h.

References atAFAPlusOffset, and m_type.

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

◆ IsAtCFAPlusOffset()

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

◆ IsAtDWARFExpression()

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

◆ IsCFAPlusOffset()

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

Definition at line 95 of file UnwindPlan.h.

References isCFAPlusOffset, and m_type.

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

◆ IsConstant()

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

Definition at line 109 of file UnwindPlan.h.

References isConstant, and m_type.

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

◆ IsDWARFExpression()

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

◆ IsInOtherRegister()

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

Definition at line 103 of file UnwindPlan.h.

References inOtherRegister, and m_type.

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

◆ 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::SavedLocationForRegister().

◆ 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::SavedLocationForRegister().

◆ IsUnspecified()

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

Definition at line 91 of file UnwindPlan.h.

References m_type, and unspecified.

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

◆ operator!=()

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

Definition at line 79 of file UnwindPlan.h.

◆ operator==()

bool UnwindPlan::Row::AbstractRegisterLocation::operator== ( const AbstractRegisterLocation rhs) const

◆ 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()

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

◆ SetIsConstant()

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

◆ SetIsDWARFExpression()

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

◆ SetSame()

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

◆ SetUndefined()

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

◆ 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 { ... } 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 { ... } lldb_private::UnwindPlan::Row::AbstractRegisterLocation::m_location

◆ m_type

RestoreType lldb_private::UnwindPlan::Row::AbstractRegisterLocation::m_type = unspecified
private

◆ 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(), and operator==().

◆ 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: