LLDB mainline
lldb_private::CompactUnwindInfo Class Reference

#include <CompactUnwindInfo.h>

Classes

struct  FunctionInfo
struct  UnwindHeader
struct  UnwindIndex

Public Member Functions

 CompactUnwindInfo (ObjectFile &objfile, lldb::SectionSP &section)
 ~CompactUnwindInfo ()
bool GetUnwindPlan (Target &target, Address addr, UnwindPlan &unwind_plan)
bool IsValid (const lldb::ProcessSP &process_sp)

Private Member Functions

void ScanIndex (const lldb::ProcessSP &process_sp)
bool GetCompactUnwindInfoForFunction (Target &target, Address address, FunctionInfo &unwind_info)
lldb::offset_t BinarySearchRegularSecondPage (uint32_t entry_page_offset, uint32_t entry_count, uint32_t function_offset, uint32_t *entry_func_start_offset, uint32_t *entry_func_end_offset)
uint32_t BinarySearchCompressedSecondPage (uint32_t entry_page_offset, uint32_t entry_count, uint32_t function_offset_to_find, uint32_t function_offset_base, uint32_t *entry_func_start_offset, uint32_t *entry_func_end_offset)
uint32_t GetLSDAForFunctionOffset (uint32_t lsda_offset, uint32_t lsda_count, uint32_t function_offset)
bool CreateUnwindPlan_x86_64 (Target &target, FunctionInfo &function_info, UnwindPlan &unwind_plan, Address pc_or_function_start)
bool CreateUnwindPlan_i386 (Target &target, FunctionInfo &function_info, UnwindPlan &unwind_plan, Address pc_or_function_start)
bool CreateUnwindPlan_arm64 (Target &target, FunctionInfo &function_info, UnwindPlan &unwind_plan, Address pc_or_function_start)
bool CreateUnwindPlan_armv7 (Target &target, FunctionInfo &function_info, UnwindPlan &unwind_plan, Address pc_or_function_start)

Private Attributes

ObjectFilem_objfile
lldb::SectionSP m_section_sp
lldb::WritableDataBufferSP m_section_contents_if_encrypted
std::mutex m_mutex
std::vector< UnwindIndexm_indexes
LazyBool m_indexes_computed
DataExtractor m_unwindinfo_data
bool m_unwindinfo_data_computed
UnwindHeader m_unwind_header

Detailed Description

Definition at line 36 of file CompactUnwindInfo.h.

Constructor & Destructor Documentation

◆ CompactUnwindInfo()

◆ ~CompactUnwindInfo()

CompactUnwindInfo::~CompactUnwindInfo ( )
default

Member Function Documentation

◆ BinarySearchCompressedSecondPage()

uint32_t CompactUnwindInfo::BinarySearchCompressedSecondPage ( uint32_t entry_page_offset,
uint32_t entry_count,
uint32_t function_offset_to_find,
uint32_t function_offset_base,
uint32_t * entry_func_start_offset,
uint32_t * entry_func_end_offset )
private

◆ BinarySearchRegularSecondPage()

lldb::offset_t CompactUnwindInfo::BinarySearchRegularSecondPage ( uint32_t entry_page_offset,
uint32_t entry_count,
uint32_t function_offset,
uint32_t * entry_func_start_offset,
uint32_t * entry_func_end_offset )
private

Definition at line 411 of file CompactUnwindInfo.cpp.

References LLDB_INVALID_OFFSET, and m_unwindinfo_data.

Referenced by GetCompactUnwindInfoForFunction().

◆ CreateUnwindPlan_arm64()

◆ CreateUnwindPlan_armv7()

◆ CreateUnwindPlan_i386()

◆ CreateUnwindPlan_x86_64()

◆ GetCompactUnwindInfoForFunction()

◆ GetLSDAForFunctionOffset()

uint32_t CompactUnwindInfo::GetLSDAForFunctionOffset ( uint32_t lsda_offset,
uint32_t lsda_count,
uint32_t function_offset )
private

Definition at line 382 of file CompactUnwindInfo.cpp.

References m_unwindinfo_data.

Referenced by GetCompactUnwindInfoForFunction().

◆ GetUnwindPlan()

◆ IsValid()

bool CompactUnwindInfo::IsValid ( const lldb::ProcessSP & process_sp)

◆ ScanIndex()

Member Data Documentation

◆ m_indexes

std::vector<UnwindIndex> lldb_private::CompactUnwindInfo::m_indexes
private

◆ m_indexes_computed

LazyBool lldb_private::CompactUnwindInfo::m_indexes_computed
private

Definition at line 149 of file CompactUnwindInfo.h.

Referenced by CompactUnwindInfo(), IsValid(), and ScanIndex().

◆ m_mutex

std::mutex lldb_private::CompactUnwindInfo::m_mutex
private

Definition at line 146 of file CompactUnwindInfo.h.

Referenced by CompactUnwindInfo(), and ScanIndex().

◆ m_objfile

ObjectFile& lldb_private::CompactUnwindInfo::m_objfile
private

◆ m_section_contents_if_encrypted

lldb::WritableDataBufferSP lldb_private::CompactUnwindInfo::m_section_contents_if_encrypted
private

Definition at line 142 of file CompactUnwindInfo.h.

Referenced by CompactUnwindInfo(), and ScanIndex().

◆ m_section_sp

lldb::SectionSP lldb_private::CompactUnwindInfo::m_section_sp
private

Definition at line 140 of file CompactUnwindInfo.h.

Referenced by CompactUnwindInfo(), IsValid(), and ScanIndex().

◆ m_unwind_header

UnwindHeader lldb_private::CompactUnwindInfo::m_unwind_header
private

◆ m_unwindinfo_data

◆ m_unwindinfo_data_computed

bool lldb_private::CompactUnwindInfo::m_unwindinfo_data_computed
private

Definition at line 155 of file CompactUnwindInfo.h.

Referenced by CompactUnwindInfo(), IsValid(), and ScanIndex().


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