LLDB mainline
EHProgramBuilder Class Reference

Public Member Functions

 EHProgramBuilder (ObjectFilePECOFF &object_file, uint32_t unwind_info_rva)
bool Build ()
const EHProgramGetProgram () 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

Detailed Description

Definition at line 123 of file PECallFrameInfo.cpp.

Constructor & Destructor Documentation

◆ EHProgramBuilder()

EHProgramBuilder::EHProgramBuilder ( ObjectFilePECOFF & object_file,
uint32_t unwind_info_rva )

Definition at line 146 of file PECallFrameInfo.cpp.

References m_iterator.

Member Function Documentation

◆ Build()

bool EHProgramBuilder::Build ( )

Definition at line 150 of file PECallFrameInfo.cpp.

References Finalize(), m_iterator, and ProcessUnwindCode().

Referenced by PECallFrameInfo::GetUnwindPlan().

◆ ConvertMachineToLLDBRegister()

◆ ConvertXMMToLLDBRegister()

◆ Finalize()

void EHProgramBuilder::Finalize ( )
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().

◆ GetProgram()

const EHProgram & EHProgramBuilder::GetProgram ( ) const
inline

Definition at line 129 of file PECallFrameInfo.cpp.

References m_program.

Referenced by PECallFrameInfo::GetUnwindPlan().

◆ ParseBigFrameOffset()

bool EHProgramBuilder::ParseBigFrameOffset ( uint32_t & result)
private

Definition at line 325 of file PECallFrameInfo.cpp.

References m_iterator.

Referenced by ParseBigOrScaledFrameOffset().

◆ ParseBigOrScaledFrameOffset()

bool EHProgramBuilder::ParseBigOrScaledFrameOffset ( uint32_t & result,
bool big,
uint32_t scale )
private

Definition at line 310 of file PECallFrameInfo.cpp.

References ParseBigFrameOffset(), and ParseFrameOffset().

Referenced by ProcessUnwindCode().

◆ ParseFrameOffset()

bool EHProgramBuilder::ParseFrameOffset ( uint32_t & result)
private

Definition at line 340 of file PECallFrameInfo.cpp.

References m_iterator.

Referenced by ParseBigOrScaledFrameOffset().

◆ ProcessUnwindCode()

Member Data Documentation

◆ m_iterator

UnwindCodesIterator EHProgramBuilder::m_iterator
private

◆ m_program

EHProgram EHProgramBuilder::m_program
private

Definition at line 143 of file PECallFrameInfo.cpp.

Referenced by Finalize(), GetProgram(), and ProcessUnwindCode().


The documentation for this class was generated from the following file: