LLDB mainline
|
Public Member Functions | |
EHProgramBuilder (ObjectFilePECOFF &object_file, uint32_t unwind_info_rva) | |
bool | Build () |
const EHProgram & | GetProgram () const |
Private Member Functions | |
bool | ProcessUnwindCode (UnwindCode code) |
void | Finalize () |
bool | ParseBigOrScaledFrameOffset (uint32_t &result, bool big, uint32_t scale) |
bool | ParseBigFrameOffset (uint32_t &result) |
bool | ParseFrameOffset (uint32_t &result) |
Static Private Member Functions | |
static uint32_t | ConvertMachineToLLDBRegister (uint8_t machine_reg) |
static uint32_t | ConvertXMMToLLDBRegister (uint8_t xmm_reg) |
Private Attributes | |
UnwindCodesIterator | m_iterator |
EHProgram | m_program |
Definition at line 123 of file PECallFrameInfo.cpp.
EHProgramBuilder::EHProgramBuilder | ( | ObjectFilePECOFF & | object_file, |
uint32_t | unwind_info_rva | ||
) |
Definition at line 146 of file PECallFrameInfo.cpp.
bool EHProgramBuilder::Build | ( | ) |
Definition at line 150 of file PECallFrameInfo.cpp.
References Finalize(), UnwindCodesIterator::GetNext(), UnwindCodesIterator::GetUnwindCode(), UnwindCodesIterator::IsError(), m_iterator, and ProcessUnwindCode().
Referenced by PECallFrameInfo::GetUnwindPlan().
|
staticprivate |
Definition at line 163 of file PECallFrameInfo.cpp.
References LLDB_INVALID_REGNUM, lldb_private::lldb_r10_x86_64, lldb_private::lldb_r11_x86_64, lldb_private::lldb_r12_x86_64, lldb_private::lldb_r13_x86_64, lldb_private::lldb_r14_x86_64, lldb_private::lldb_r15_x86_64, lldb_private::lldb_r8_x86_64, lldb_private::lldb_r9_x86_64, lldb_private::lldb_rax_x86_64, lldb_private::lldb_rbp_x86_64, lldb_private::lldb_rbx_x86_64, lldb_private::lldb_rcx_x86_64, lldb_private::lldb_rdi_x86_64, lldb_private::lldb_rdx_x86_64, lldb_private::lldb_rsi_x86_64, and lldb_private::lldb_rsp_x86_64.
Referenced by ProcessUnwindCode().
|
staticprivate |
Definition at line 176 of file PECallFrameInfo.cpp.
References LLDB_INVALID_REGNUM, lldb_private::lldb_xmm0_x86_64, lldb_private::lldb_xmm10_x86_64, lldb_private::lldb_xmm11_x86_64, lldb_private::lldb_xmm12_x86_64, lldb_private::lldb_xmm13_x86_64, lldb_private::lldb_xmm14_x86_64, lldb_private::lldb_xmm15_x86_64, lldb_private::lldb_xmm1_x86_64, lldb_private::lldb_xmm2_x86_64, lldb_private::lldb_xmm3_x86_64, lldb_private::lldb_xmm4_x86_64, lldb_private::lldb_xmm5_x86_64, lldb_private::lldb_xmm6_x86_64, lldb_private::lldb_xmm7_x86_64, lldb_private::lldb_xmm8_x86_64, and lldb_private::lldb_xmm9_x86_64.
Referenced by ProcessUnwindCode().
|
private |
Definition at line 301 of file PECallFrameInfo.cpp.
References lldb_private::lldb_rip_x86_64, m_program, and EHInstruction::PUSH_REGISTER.
Referenced by Build().
|
inline |
Definition at line 129 of file PECallFrameInfo.cpp.
References m_program.
Referenced by PECallFrameInfo::GetUnwindPlan().
|
private |
Definition at line 325 of file PECallFrameInfo.cpp.
References UnwindCodesIterator::GetNext(), UnwindCodesIterator::GetUnwindCode(), and m_iterator.
Referenced by ParseBigOrScaledFrameOffset().
|
private |
Definition at line 310 of file PECallFrameInfo.cpp.
References ParseBigFrameOffset(), and ParseFrameOffset().
Referenced by ProcessUnwindCode().
|
private |
Definition at line 340 of file PECallFrameInfo.cpp.
References UnwindCodesIterator::GetNext(), UnwindCodesIterator::GetUnwindCode(), and m_iterator.
Referenced by ParseBigOrScaledFrameOffset().
|
private |
Definition at line 191 of file PECallFrameInfo.cpp.
References EHInstruction::ALLOCATE, ConvertMachineToLLDBRegister(), ConvertXMMToLLDBRegister(), UnwindCodesIterator::GetNext(), UnwindCodesIterator::GetUnwindInfo(), UnwindCodesIterator::IsChained(), lldb_private::lldb_cs_x86_64, LLDB_INVALID_REGNUM, lldb_private::lldb_rflags_x86_64, lldb_private::lldb_rip_x86_64, lldb_private::lldb_rsp_x86_64, lldb_private::lldb_ss_x86_64, m_iterator, m_program, ParseBigOrScaledFrameOffset(), EHInstruction::PUSH_REGISTER, EHInstruction::SAVE_REGISTER, and EHInstruction::SET_FRAME_POINTER_REGISTER.
Referenced by Build().
|
private |
Definition at line 142 of file PECallFrameInfo.cpp.
Referenced by Build(), ParseBigFrameOffset(), ParseFrameOffset(), and ProcessUnwindCode().
|
private |
Definition at line 143 of file PECallFrameInfo.cpp.
Referenced by Finalize(), GetProgram(), and ProcessUnwindCode().