LLDB mainline
|
#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 |
Definition at line 57 of file UnwindPlan.h.
Enumerator | |
---|---|
unspecified | |
undefined | |
same | |
atCFAPlusOffset | |
isCFAPlusOffset | |
atAFAPlusOffset | |
isAFAPlusOffset | |
inOtherRegister | |
atDWARFExpression | |
isDWARFExpression | |
isConstant |
Definition at line 59 of file UnwindPlan.h.
|
inline |
Definition at line 75 of file UnwindPlan.h.
void UnwindPlan::Row::AbstractRegisterLocation::Dump | ( | Stream & | s, |
const UnwindPlan * | unwind_plan, | ||
const UnwindPlan::Row * | row, | ||
Thread * | thread, | ||
bool | verbose | ||
) | const |
Definition at line 95 of file UnwindPlan.cpp.
References DumpDWARFExpr(), lldb_private::UnwindPlan::GetRegisterInfo(), lldb_private::RegisterInfo::name, lldb_private::Stream::Printf(), lldb_private::Stream::PutChar(), and lldb_private::Stream::PutCString().
|
inline |
Definition at line 116 of file UnwindPlan.h.
References m_location.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 164 of file UnwindPlan.h.
References atDWARFExpression, isDWARFExpression, m_location, m_type, and opcodes.
|
inline |
Definition at line 178 of file UnwindPlan.h.
References atDWARFExpression, isDWARFExpression, m_location, and m_type.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 184 of file UnwindPlan.h.
References atDWARFExpression, isDWARFExpression, m_location, and m_type.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 149 of file UnwindPlan.h.
References m_type.
|
inline |
Definition at line 151 of file UnwindPlan.h.
References atAFAPlusOffset, atCFAPlusOffset, isAFAPlusOffset, isCFAPlusOffset, m_location, and m_type.
Referenced by UnwindAssembly_x86::AugmentUnwindPlanFromCallSite(), and lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 143 of file UnwindPlan.h.
References inOtherRegister, LLDB_INVALID_REGNUM, m_location, and m_type.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 99 of file UnwindPlan.h.
References isAFAPlusOffset, and m_type.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 101 of file UnwindPlan.h.
References atAFAPlusOffset, and m_type.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 97 of file UnwindPlan.h.
References atCFAPlusOffset, and m_type.
Referenced by UnwindAssembly_x86::AugmentUnwindPlanFromCallSite(), and lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 105 of file UnwindPlan.h.
References atDWARFExpression, and m_type.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 95 of file UnwindPlan.h.
References isCFAPlusOffset, and m_type.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 109 of file UnwindPlan.h.
References isConstant, and m_type.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 107 of file UnwindPlan.h.
References isDWARFExpression, and m_type.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 103 of file UnwindPlan.h.
References inOtherRegister, and m_type.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 89 of file UnwindPlan.h.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 93 of file UnwindPlan.h.
References m_type, and undefined.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 91 of file UnwindPlan.h.
References m_type, and unspecified.
Referenced by lldb_private::RegisterContextUnwind::SavedLocationForRegister().
|
inline |
Definition at line 79 of file UnwindPlan.h.
bool UnwindPlan::Row::AbstractRegisterLocation::operator== | ( | const AbstractRegisterLocation & | rhs | ) | const |
Definition at line 25 of file UnwindPlan.cpp.
References atAFAPlusOffset, atCFAPlusOffset, atDWARFExpression, constant_value, expr, inOtherRegister, isAFAPlusOffset, isCFAPlusOffset, isConstant, isDWARFExpression, length, m_location, m_type, offset, opcodes, reg_num, same, undefined, and unspecified.
|
inline |
Definition at line 128 of file UnwindPlan.h.
References atAFAPlusOffset, m_location, m_type, and offset.
Referenced by lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly().
|
inline |
Definition at line 118 of file UnwindPlan.h.
References atCFAPlusOffset, m_location, m_type, and offset.
Referenced by lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), and lldb_private::UnwindPlan::Row::SetRegisterLocationToAtCFAPlusOffset().
void UnwindPlan::Row::AbstractRegisterLocation::SetAtDWARFExpression | ( | const uint8_t * | opcodes, |
uint32_t | len | ||
) |
Definition at line 58 of file UnwindPlan.cpp.
Referenced by lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode().
|
inline |
Definition at line 138 of file UnwindPlan.h.
References inOtherRegister, m_location, m_type, and reg_num.
Referenced by lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), and lldb_private::UnwindPlan::Row::SetRegisterLocationToRegister().
|
inline |
Definition at line 133 of file UnwindPlan.h.
References isAFAPlusOffset, m_location, m_type, and offset.
|
inline |
Definition at line 123 of file UnwindPlan.h.
References isCFAPlusOffset, m_location, m_type, and offset.
Referenced by lldb_private::ABI::GetFallbackRegisterLocation(), lldb_private::x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(), and lldb_private::UnwindPlan::Row::SetRegisterLocationToIsCFAPlusOffset().
|
inline |
Definition at line 111 of file UnwindPlan.h.
References isConstant, m_location, and m_type.
Referenced by lldb_private::UnwindPlan::Row::SetRegisterLocationToIsConstant().
void UnwindPlan::Row::AbstractRegisterLocation::SetIsDWARFExpression | ( | const uint8_t * | opcodes, |
uint32_t | len | ||
) |
Definition at line 67 of file UnwindPlan.cpp.
Referenced by lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), lldb_private::breakpad::SymbolFileBreakpad::ParseCFIUnwindRow(), lldb_private::breakpad::SymbolFileBreakpad::ParseWinUnwindPlan(), and lldb_private::UnwindPlan::Row::SetRegisterLocationToIsDWARFExpression().
|
inline |
Definition at line 87 of file UnwindPlan.h.
Referenced by lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), and lldb_private::UnwindPlan::Row::SetRegisterLocationToSame().
|
inline |
Definition at line 85 of file UnwindPlan.h.
References m_type, and undefined.
Referenced by ABISysV_s390x::GetFallbackRegisterLocation(), lldb_private::ABI::GetFallbackRegisterLocation(), lldb_private::UnwindPlan::Row::GetRegisterInfo(), lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), and lldb_private::UnwindPlan::Row::SetRegisterLocationToUndefined().
|
inline |
Definition at line 83 of file UnwindPlan.h.
References m_type, and unspecified.
Referenced by lldb_private::UnwindPlan::Row::SetRegisterLocationToUnspecified().
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==().
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 |
|
private |
Definition at line 194 of file UnwindPlan.h.
Referenced by GetDWARFExpr(), GetDWARFExpressionBytes(), GetDWARFExpressionLength(), GetLocationType(), GetOffset(), GetRegisterNumber(), IsAFAPlusOffset(), IsAtAFAPlusOffset(), IsAtCFAPlusOffset(), IsAtDWARFExpression(), IsCFAPlusOffset(), IsConstant(), IsDWARFExpression(), IsInOtherRegister(), IsSame(), IsUndefined(), IsUnspecified(), operator==(), SetAtAFAPlusOffset(), SetAtCFAPlusOffset(), SetInRegister(), SetIsAFAPlusOffset(), SetIsCFAPlusOffset(), SetIsConstant(), SetSame(), SetUndefined(), and SetUnspecified().
int32_t lldb_private::UnwindPlan::Row::AbstractRegisterLocation::offset |
Definition at line 197 of file UnwindPlan.h.
Referenced by operator==(), SetAtAFAPlusOffset(), SetAtCFAPlusOffset(), SetIsAFAPlusOffset(), and SetIsCFAPlusOffset().
const uint8_t* lldb_private::UnwindPlan::Row::AbstractRegisterLocation::opcodes |
Definition at line 202 of file UnwindPlan.h.
Referenced by GetDWARFExpr(), and operator==().
uint32_t lldb_private::UnwindPlan::Row::AbstractRegisterLocation::reg_num |
Definition at line 199 of file UnwindPlan.h.
Referenced by operator==(), and SetInRegister().