LLDB mainline
|
#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 ®ister_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) |
FAValue & | GetCFAValue () |
FAValue & | GetAFAValue () |
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, AbstractRegisterLocation > | collection |
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 |
Definition at line 55 of file UnwindPlan.h.
|
protected |
Definition at line 420 of file UnwindPlan.h.
UnwindPlan::Row::Row | ( | ) |
Definition at line 256 of file UnwindPlan.cpp.
void UnwindPlan::Row::Clear | ( | ) |
Definition at line 224 of file UnwindPlan.cpp.
References m_afa_value, m_cfa_value, m_offset, m_register_locations, m_unspecified_registers_are_undefined, and lldb_private::UnwindPlan::Row::FAValue::SetUnspecified().
void UnwindPlan::Row::Dump | ( | Stream & | s, |
const UnwindPlan * | unwind_plan, | ||
Thread * | thread, | ||
lldb::addr_t | base_addr | ||
) | const |
Definition at line 232 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::FAValue::Dump(), DumpRegisterName(), GetOffset(), lldb_private::UnwindPlan::Row::FAValue::IsUnspecified(), LLDB_INVALID_ADDRESS, m_afa_value, m_cfa_value, m_register_locations, lldb_private::Stream::Printf(), and lldb_private::Stream::PutChar().
|
inline |
Definition at line 367 of file UnwindPlan.h.
References m_afa_value.
|
inline |
Definition at line 365 of file UnwindPlan.h.
References m_cfa_value.
Referenced by lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), and lldb_private::breakpad::SymbolFileBreakpad::ParseCFIUnwindRow().
|
inline |
bool UnwindPlan::Row::GetRegisterInfo | ( | uint32_t | reg_num, |
AbstractRegisterLocation & | register_location | ||
) | const |
Definition at line 258 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetUndefined().
|
inline |
Definition at line 410 of file UnwindPlan.h.
References m_unspecified_registers_are_undefined.
bool UnwindPlan::Row::operator== | ( | const Row & | rhs | ) | const |
Definition at line 384 of file UnwindPlan.cpp.
References m_afa_value, m_cfa_value, m_offset, m_register_locations, and m_unspecified_registers_are_undefined.
void UnwindPlan::Row::RemoveRegisterInfo | ( | uint32_t | reg_num | ) |
Definition at line 273 of file UnwindPlan.cpp.
|
inline |
Definition at line 361 of file UnwindPlan.h.
References m_offset.
Referenced by lldb_private::DWARFCallFrameInfo::FDEToUnwindPlan(), and UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly().
void UnwindPlan::Row::SetRegisterInfo | ( | uint32_t | reg_num, |
const AbstractRegisterLocation | register_location | ||
) |
Definition at line 280 of file UnwindPlan.cpp.
Referenced by lldb_private::DWARFCallFrameInfo::HandleCommonDwarfOpcode(), and lldb_private::breakpad::SymbolFileBreakpad::ParseCFIUnwindRow().
bool UnwindPlan::Row::SetRegisterLocationToAtCFAPlusOffset | ( | uint32_t | reg_num, |
int32_t | offset, | ||
bool | can_replace | ||
) |
Definition at line 286 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetAtCFAPlusOffset().
bool UnwindPlan::Row::SetRegisterLocationToIsCFAPlusOffset | ( | uint32_t | reg_num, |
int32_t | offset, | ||
bool | can_replace | ||
) |
Definition at line 298 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetIsCFAPlusOffset().
bool UnwindPlan::Row::SetRegisterLocationToIsConstant | ( | uint32_t | reg_num, |
uint64_t | constant, | ||
bool | can_replace | ||
) |
Definition at line 372 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetIsConstant().
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().
bool UnwindPlan::Row::SetRegisterLocationToRegister | ( | uint32_t | reg_num, |
uint32_t | other_reg_num, | ||
bool | can_replace | ||
) |
Definition at line 338 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetInRegister().
bool UnwindPlan::Row::SetRegisterLocationToSame | ( | uint32_t | reg_num, |
bool | must_replace | ||
) |
Definition at line 350 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetSame().
bool UnwindPlan::Row::SetRegisterLocationToUndefined | ( | uint32_t | reg_num, |
bool | can_replace, | ||
bool | can_replace_only_if_unspecified | ||
) |
Definition at line 310 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetUndefined().
bool UnwindPlan::Row::SetRegisterLocationToUnspecified | ( | uint32_t | reg_num, |
bool | can_replace | ||
) |
Definition at line 327 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::AbstractRegisterLocation::SetUnspecified().
|
inline |
Definition at line 406 of file UnwindPlan.h.
References m_unspecified_registers_are_undefined.
|
inline |
Definition at line 363 of file UnwindPlan.h.
References m_offset.
Referenced by lldb_private::DWARFCallFrameInfo::FDEToUnwindPlan().
|
protected |
Definition at line 424 of file UnwindPlan.h.
Referenced by Clear(), Dump(), GetAFAValue(), and operator==().
|
protected |
Definition at line 423 of file UnwindPlan.h.
Referenced by Clear(), Dump(), GetCFAValue(), and operator==().
|
protected |
Definition at line 421 of file UnwindPlan.h.
Referenced by Clear(), GetOffset(), operator==(), SetOffset(), and SlideOffset().
|
protected |
Definition at line 425 of file UnwindPlan.h.
Referenced by Clear(), Dump(), and operator==().
|
protected |
Definition at line 426 of file UnwindPlan.h.
Referenced by Clear(), GetUnspecifiedRegistersAreUndefined(), operator==(), and SetUnspecifiedRegistersAreUndefined().