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) |
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, 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 401 of file UnwindPlan.h.
UnwindPlan::Row::Row | ( | ) |
Definition at line 254 of file UnwindPlan.cpp.
void UnwindPlan::Row::Clear | ( | ) |
Definition at line 222 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 230 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 355 of file UnwindPlan.h.
References m_afa_value.
|
inline |
Definition at line 353 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 256 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetUndefined().
|
inline |
Definition at line 391 of file UnwindPlan.h.
References m_unspecified_registers_are_undefined.
bool UnwindPlan::Row::operator== | ( | const Row & | rhs | ) | const |
Definition at line 371 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 271 of file UnwindPlan.cpp.
|
inline |
Definition at line 349 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 278 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 284 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 296 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetIsCFAPlusOffset().
bool UnwindPlan::Row::SetRegisterLocationToIsConstant | ( | uint32_t | reg_num, |
uint64_t | constant, | ||
bool | can_replace | ||
) |
Definition at line 359 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetIsConstant().
bool UnwindPlan::Row::SetRegisterLocationToRegister | ( | uint32_t | reg_num, |
uint32_t | other_reg_num, | ||
bool | can_replace | ||
) |
Definition at line 336 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 348 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 308 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 325 of file UnwindPlan.cpp.
References lldb_private::UnwindPlan::Row::RegisterLocation::SetUnspecified().
|
inline |
Definition at line 387 of file UnwindPlan.h.
References m_unspecified_registers_are_undefined.
|
inline |
Definition at line 351 of file UnwindPlan.h.
References m_offset.
Referenced by lldb_private::DWARFCallFrameInfo::FDEToUnwindPlan().
|
protected |
Definition at line 405 of file UnwindPlan.h.
Referenced by Clear(), Dump(), GetAFAValue(), and operator==().
|
protected |
Definition at line 404 of file UnwindPlan.h.
Referenced by Clear(), Dump(), GetCFAValue(), and operator==().
|
protected |
Definition at line 402 of file UnwindPlan.h.
Referenced by Clear(), GetOffset(), operator==(), SetOffset(), and SlideOffset().
|
protected |
Definition at line 406 of file UnwindPlan.h.
Referenced by Clear(), Dump(), and operator==().
|
protected |
Definition at line 407 of file UnwindPlan.h.
Referenced by Clear(), GetUnspecifiedRegistersAreUndefined(), operator==(), and SetUnspecifiedRegistersAreUndefined().