LLDB mainline
|
#include <UnwindPlan.h>
Classes | |
class | FAValue |
class | RegisterLocation |
Public Member Functions | |
Row () | |
bool | operator== (const Row &rhs) const |
bool | GetRegisterInfo (uint32_t reg_num, RegisterLocation ®ister_location) const |
void | SetRegisterInfo (uint32_t reg_num, const RegisterLocation 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) |
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, RegisterLocation > | 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 386 of file UnwindPlan.h.
UnwindPlan::Row::Row | ( | ) |
Definition at line 249 of file UnwindPlan.cpp.
void UnwindPlan::Row::Clear | ( | ) |
Definition at line 217 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 225 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 343 of file UnwindPlan.h.
References m_afa_value.
|
inline |
Definition at line 341 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, |
RegisterLocation & | register_location | ||
) | const |
Definition at line 251 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetUndefined().
|
inline |
Definition at line 376 of file UnwindPlan.h.
References m_unspecified_registers_are_undefined.
bool UnwindPlan::Row::operator== | ( | const Row & | rhs | ) | const |
Definition at line 354 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 266 of file UnwindPlan.cpp.
|
inline |
Definition at line 337 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 RegisterLocation | register_location | ||
) |
Definition at line 273 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 279 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetAtCFAPlusOffset().
bool UnwindPlan::Row::SetRegisterLocationToIsCFAPlusOffset | ( | uint32_t | reg_num, |
int32_t | offset, | ||
bool | can_replace | ||
) |
Definition at line 291 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetIsCFAPlusOffset().
bool UnwindPlan::Row::SetRegisterLocationToRegister | ( | uint32_t | reg_num, |
uint32_t | other_reg_num, | ||
bool | can_replace | ||
) |
Definition at line 331 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetInRegister().
bool UnwindPlan::Row::SetRegisterLocationToSame | ( | uint32_t | reg_num, |
bool | must_replace | ||
) |
Definition at line 343 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetSame().
bool UnwindPlan::Row::SetRegisterLocationToUndefined | ( | uint32_t | reg_num, |
bool | can_replace, | ||
bool | can_replace_only_if_unspecified | ||
) |
Definition at line 303 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetUndefined().
bool UnwindPlan::Row::SetRegisterLocationToUnspecified | ( | uint32_t | reg_num, |
bool | can_replace | ||
) |
Definition at line 320 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetUnspecified().
|
inline |
Definition at line 372 of file UnwindPlan.h.
References m_unspecified_registers_are_undefined.
|
inline |
Definition at line 339 of file UnwindPlan.h.
References m_offset.
Referenced by lldb_private::DWARFCallFrameInfo::FDEToUnwindPlan().
|
protected |
Definition at line 390 of file UnwindPlan.h.
Referenced by Clear(), Dump(), GetAFAValue(), and operator==().
|
protected |
Definition at line 389 of file UnwindPlan.h.
Referenced by Clear(), Dump(), GetCFAValue(), and operator==().
|
protected |
Definition at line 387 of file UnwindPlan.h.
Referenced by Clear(), GetOffset(), operator==(), SetOffset(), and SlideOffset().
|
protected |
Definition at line 391 of file UnwindPlan.h.
Referenced by Clear(), Dump(), and operator==().
|
protected |
Definition at line 392 of file UnwindPlan.h.
Referenced by Clear(), GetUnspecifiedRegistersAreUndefined(), operator==(), and SetUnspecifiedRegistersAreUndefined().