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

#include <UnwindPlan.h>

Classes

class  AbstractRegisterLocation
 
class  FAValue
 

Public Member Functions

 Row ()
 
bool operator== (const Row &rhs) const
 
bool GetRegisterInfo (uint32_t reg_num, AbstractRegisterLocation &register_location) const
 
void SetRegisterInfo (uint32_t reg_num, const AbstractRegisterLocation register_location)
 
void RemoveRegisterInfo (uint32_t reg_num)
 
lldb::addr_t GetOffset () const
 
void SetOffset (lldb::addr_t offset)
 
void SlideOffset (lldb::addr_t offset)
 
FAValueGetCFAValue ()
 
FAValueGetAFAValue ()
 
bool SetRegisterLocationToAtCFAPlusOffset (uint32_t reg_num, int32_t offset, bool can_replace)
 
bool SetRegisterLocationToIsCFAPlusOffset (uint32_t reg_num, int32_t offset, bool can_replace)
 
bool SetRegisterLocationToUndefined (uint32_t reg_num, bool can_replace, bool can_replace_only_if_unspecified)
 
bool SetRegisterLocationToUnspecified (uint32_t reg_num, bool can_replace)
 
bool SetRegisterLocationToRegister (uint32_t reg_num, uint32_t other_reg_num, bool can_replace)
 
bool SetRegisterLocationToSame (uint32_t reg_num, bool must_replace)
 
bool SetRegisterLocationToIsDWARFExpression (uint32_t reg_num, const uint8_t *opcodes, uint32_t len, bool can_replace)
 This method does not make a copy of the opcodes memory, it is assumed to have the same lifetime as the Module this UnwindPlan will be registered in.
 
bool SetRegisterLocationToIsConstant (uint32_t reg_num, uint64_t constant, bool can_replace)
 
void SetUnspecifiedRegistersAreUndefined (bool unspec_is_undef)
 
bool GetUnspecifiedRegistersAreUndefined ()
 
void Clear ()
 
void Dump (Stream &s, const UnwindPlan *unwind_plan, Thread *thread, lldb::addr_t base_addr) const
 

Protected Types

typedef std::map< uint32_t, AbstractRegisterLocationcollection
 

Protected Attributes

lldb::addr_t m_offset = 0
 
FAValue m_cfa_value
 
FAValue m_afa_value
 
collection m_register_locations
 
bool m_unspecified_registers_are_undefined = false
 

Detailed Description

Definition at line 55 of file UnwindPlan.h.

Member Typedef Documentation

◆ collection

Definition at line 420 of file UnwindPlan.h.

Constructor & Destructor Documentation

◆ Row()

UnwindPlan::Row::Row ( )

Definition at line 256 of file UnwindPlan.cpp.

Member Function Documentation

◆ Clear()

void UnwindPlan::Row::Clear ( )

◆ Dump()

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

◆ GetAFAValue()

FAValue & lldb_private::UnwindPlan::Row::GetAFAValue ( )
inline

Definition at line 367 of file UnwindPlan.h.

References m_afa_value.

◆ GetCFAValue()

FAValue & lldb_private::UnwindPlan::Row::GetCFAValue ( )
inline

◆ GetOffset()

lldb::addr_t lldb_private::UnwindPlan::Row::GetOffset ( ) const
inline

Definition at line 359 of file UnwindPlan.h.

References m_offset.

Referenced by Dump().

◆ GetRegisterInfo()

bool UnwindPlan::Row::GetRegisterInfo ( uint32_t  reg_num,
AbstractRegisterLocation register_location 
) const

◆ GetUnspecifiedRegistersAreUndefined()

bool lldb_private::UnwindPlan::Row::GetUnspecifiedRegistersAreUndefined ( )
inline

Definition at line 410 of file UnwindPlan.h.

References m_unspecified_registers_are_undefined.

◆ operator==()

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

◆ RemoveRegisterInfo()

void UnwindPlan::Row::RemoveRegisterInfo ( uint32_t  reg_num)

Definition at line 273 of file UnwindPlan.cpp.

◆ SetOffset()

void lldb_private::UnwindPlan::Row::SetOffset ( lldb::addr_t  offset)
inline

◆ SetRegisterInfo()

void UnwindPlan::Row::SetRegisterInfo ( uint32_t  reg_num,
const AbstractRegisterLocation  register_location 
)

◆ SetRegisterLocationToAtCFAPlusOffset()

bool UnwindPlan::Row::SetRegisterLocationToAtCFAPlusOffset ( uint32_t  reg_num,
int32_t  offset,
bool  can_replace 
)

◆ SetRegisterLocationToIsCFAPlusOffset()

bool UnwindPlan::Row::SetRegisterLocationToIsCFAPlusOffset ( uint32_t  reg_num,
int32_t  offset,
bool  can_replace 
)

◆ SetRegisterLocationToIsConstant()

bool UnwindPlan::Row::SetRegisterLocationToIsConstant ( uint32_t  reg_num,
uint64_t  constant,
bool  can_replace 
)

◆ SetRegisterLocationToIsDWARFExpression()

bool UnwindPlan::Row::SetRegisterLocationToIsDWARFExpression ( uint32_t  reg_num,
const uint8_t *  opcodes,
uint32_t  len,
bool  can_replace 
)

This method does not make a copy of the opcodes memory, it is assumed to have the same lifetime as the Module this UnwindPlan will be registered in.

Definition at line 361 of file UnwindPlan.cpp.

References lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetIsDWARFExpression().

◆ SetRegisterLocationToRegister()

bool UnwindPlan::Row::SetRegisterLocationToRegister ( uint32_t  reg_num,
uint32_t  other_reg_num,
bool  can_replace 
)

◆ SetRegisterLocationToSame()

bool UnwindPlan::Row::SetRegisterLocationToSame ( uint32_t  reg_num,
bool  must_replace 
)

◆ SetRegisterLocationToUndefined()

bool UnwindPlan::Row::SetRegisterLocationToUndefined ( uint32_t  reg_num,
bool  can_replace,
bool  can_replace_only_if_unspecified 
)

◆ SetRegisterLocationToUnspecified()

bool UnwindPlan::Row::SetRegisterLocationToUnspecified ( uint32_t  reg_num,
bool  can_replace 
)

◆ SetUnspecifiedRegistersAreUndefined()

void lldb_private::UnwindPlan::Row::SetUnspecifiedRegistersAreUndefined ( bool  unspec_is_undef)
inline

Definition at line 406 of file UnwindPlan.h.

References m_unspecified_registers_are_undefined.

◆ SlideOffset()

void lldb_private::UnwindPlan::Row::SlideOffset ( lldb::addr_t  offset)
inline

Definition at line 363 of file UnwindPlan.h.

References m_offset.

Referenced by lldb_private::DWARFCallFrameInfo::FDEToUnwindPlan().

Member Data Documentation

◆ m_afa_value

FAValue lldb_private::UnwindPlan::Row::m_afa_value
protected

Definition at line 424 of file UnwindPlan.h.

Referenced by Clear(), Dump(), GetAFAValue(), and operator==().

◆ m_cfa_value

FAValue lldb_private::UnwindPlan::Row::m_cfa_value
protected

Definition at line 423 of file UnwindPlan.h.

Referenced by Clear(), Dump(), GetCFAValue(), and operator==().

◆ m_offset

lldb::addr_t lldb_private::UnwindPlan::Row::m_offset = 0
protected

Definition at line 421 of file UnwindPlan.h.

Referenced by Clear(), GetOffset(), operator==(), SetOffset(), and SlideOffset().

◆ m_register_locations

collection lldb_private::UnwindPlan::Row::m_register_locations
protected

Definition at line 425 of file UnwindPlan.h.

Referenced by Clear(), Dump(), and operator==().

◆ m_unspecified_registers_are_undefined

bool lldb_private::UnwindPlan::Row::m_unspecified_registers_are_undefined = false
protected

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