9#ifndef LLDB_SYMBOL_DWARFCALLFRAMEINFO_H
10#define LLDB_SYMBOL_DWARFCALLFRAMEINFO_H
126 std::optional<FDEEntryMap::Entry>
A section + offset based address range class.
A section + offset based address class.
bool m_fde_index_initialized
lldb::RegisterKind GetRegisterKind() const
RangeDataVector< lldb::addr_t, uint32_t, dw_offset_t > FDEEntryMap
std::shared_ptr< CIE > CIESP
CIESP ParseCIE(const dw_offset_t cie_offset)
void GetFunctionAddressAndSizeVector(FunctionAddressAndSizeVector &function_info)
std::optional< FDEEntryMap::Entry > GetFirstFDEEntryInRange(const AddressRange &range)
~DWARFCallFrameInfo()=default
lldb::SectionSP m_section_sp
void ForEachFDEEntries(const std::function< bool(lldb::addr_t, uint32_t, dw_offset_t)> &callback)
const CIE * GetCIE(dw_offset_t cie_offset)
std::mutex m_fde_index_mutex
std::map< dw_offset_t, CIESP > cie_map_t
bool GetAddressRange(Address addr, AddressRange &range)
bool FDEToUnwindPlan(dw_offset_t offset, Address startaddr, UnwindPlan &unwind_plan)
RangeVector< lldb::addr_t, uint32_t > FunctionAddressAndSizeVector
bool m_cfi_data_initialized
bool GetUnwindPlan(const Address &addr, UnwindPlan &unwind_plan)
Return an UnwindPlan based on the call frame information encoded in the FDE of this DWARFCallFrameInf...
bool HandleCommonDwarfOpcode(uint8_t primary_opcode, uint8_t extended_opcode, int32_t data_align, lldb::offset_t &offset, UnwindPlan::Row &row)
A plug-in interface definition class for object file parsers.
#define LLDB_INVALID_ADDRESS
#define LLDB_INVALID_REGNUM
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::Section > SectionSP
RegisterKind
Register numbering types.
@ eRegisterKindDWARF
the register numbers seen DWARF
@ eRegisterKindEHFrame
the register numbers seen in eh_frame
uint8_t lsda_addr_encoding
uint32_t return_addr_reg_num
lldb_private::UnwindPlan::Row initial_row
lldb::addr_t personality_loc
char augmentation[CFI_AUG_MAX_SIZE]