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