LLDB mainline
Public Types | Public Member Functions | Private Attributes | List of all members
lldb_private::UnwindPlan::Row::RegisterLocation Class Reference

#include <UnwindPlan.h>

Public Types

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

Public Member Functions

 RegisterLocation ()
 
bool operator== (const RegisterLocation &rhs) const
 
bool operator!= (const RegisterLocation &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
 
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
 
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 

Definition at line 59 of file UnwindPlan.h.

Constructor & Destructor Documentation

◆ RegisterLocation()

lldb_private::UnwindPlan::Row::RegisterLocation::RegisterLocation ( )
inline

Definition at line 74 of file UnwindPlan.h.

Member Function Documentation

◆ Dump()

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

◆ GetDWARFExpr()

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

Definition at line 154 of file UnwindPlan.h.

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

◆ GetDWARFExpressionBytes()

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

◆ GetDWARFExpressionLength()

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

◆ GetLocationType()

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

Definition at line 139 of file UnwindPlan.h.

References m_type.

◆ GetOffset()

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

◆ GetRegisterNumber()

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

◆ IsAFAPlusOffset()

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

Definition at line 98 of file UnwindPlan.h.

References isAFAPlusOffset, and m_type.

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

◆ IsAtAFAPlusOffset()

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

Definition at line 100 of file UnwindPlan.h.

References atAFAPlusOffset, and m_type.

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

◆ IsAtCFAPlusOffset()

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

◆ IsAtDWARFExpression()

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

◆ IsCFAPlusOffset()

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

Definition at line 94 of file UnwindPlan.h.

References isCFAPlusOffset, and m_type.

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

◆ IsDWARFExpression()

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

◆ IsInOtherRegister()

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

Definition at line 102 of file UnwindPlan.h.

References inOtherRegister, and m_type.

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

◆ IsSame()

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

Definition at line 88 of file UnwindPlan.h.

References m_type, and same.

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

◆ IsUndefined()

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

Definition at line 92 of file UnwindPlan.h.

References m_type, and undefined.

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

◆ IsUnspecified()

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

Definition at line 90 of file UnwindPlan.h.

References m_type, and unspecified.

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

◆ operator!=()

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

Definition at line 78 of file UnwindPlan.h.

◆ operator==()

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

◆ SetAtAFAPlusOffset()

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

◆ SetAtCFAPlusOffset()

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

◆ SetAtDWARFExpression()

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

◆ SetInRegister()

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

◆ SetIsAFAPlusOffset()

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

Definition at line 123 of file UnwindPlan.h.

References isAFAPlusOffset, m_location, m_type, and offset.

◆ SetIsCFAPlusOffset()

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

◆ SetIsDWARFExpression()

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

◆ SetSame()

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

◆ SetUndefined()

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

◆ SetUnspecified()

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

Definition at line 82 of file UnwindPlan.h.

References m_type, and unspecified.

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

Member Data Documentation

◆ 

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

Referenced by operator==().

◆ length

uint16_t lldb_private::UnwindPlan::Row::RegisterLocation::length

Definition at line 193 of file UnwindPlan.h.

Referenced by operator==().

◆ 

union { ... } lldb_private::UnwindPlan::Row::RegisterLocation::m_location

◆ m_type

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

◆ offset

int32_t lldb_private::UnwindPlan::Row::RegisterLocation::offset

◆ opcodes

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

Definition at line 192 of file UnwindPlan.h.

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

◆ reg_num

uint32_t lldb_private::UnwindPlan::Row::RegisterLocation::reg_num

Definition at line 189 of file UnwindPlan.h.

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


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