9#ifndef LLDB_SYMBOL_DWARFCALLFRAMEINFO_H
10#define LLDB_SYMBOL_DWARFCALLFRAMEINFO_H
57 std::unique_ptr<UnwindPlan>
GetUnwindPlan(llvm::ArrayRef<AddressRange> ranges,
129 std::optional<FDEEntryMap::Entry>
139 std::vector<UnwindPlan::Row>
rows;
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)
DWARFCallFrameInfo(ObjectFile &objfile, lldb::SectionSP §ion, Type type)
RangeVector< lldb::addr_t, uint32_t > FunctionAddressAndSizeVector
std::unique_ptr< UnwindPlan > GetUnwindPlan(const Address &addr)
Return an UnwindPlan based on the call frame information encoded in the FDE of this DWARFCallFrameInf...
bool m_cfi_data_initialized
std::optional< FDE > ParseFDE(dw_offset_t offset, const Address &startaddr)
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]
Parsed representation of a Frame Descriptor Entry.
uint32_t return_addr_reg_num
std::vector< UnwindPlan::Row > rows