Fields
sections: SectionArray = null_section_array,
is_macho: bool,
abbrev_table_list: field_call = .{ },
compile_unit_list: field_call = .{ },
func_list: field_call = .{ },
eh_frame_hdr: ?ExceptionFrameHeader = null,
cie_map: field_call = .{ },
fde_list: field_call = .{ },
Functions
fn findCompileUnit(di: *const DwarfInfo, target_address: u64) !*const CompileUnit
No documentation provided.
fn getLineNumberInfo(di: *DwarfInfo, allocator: mem.Allocator, compile_unit: CompileUnit, target_address: u64) !debug.LineInfo
No documentation provided.
fn scanAllUnwindInfo(di: *DwarfInfo, allocator: mem.Allocator, base_address: usize) !void
If .eh_frame_hdr is present, then only the header needs to be parsed.
If .eh_frame_hdr is present, then only the header needs to be parsed.
Otherwise, .eh_frame and .debug_frame are scanned and a sorted list of FDEs is built for binary searching during unwinding.
fn sectionVirtualOffset(di: DwarfInfo, dwarf_section: DwarfSection, base_address: usize) ?i64
No documentation provided.
fn unwindFrame(di: *const DwarfInfo, context: *UnwindContext, explicit_fde_offset: ?usize) !usize
Unwind a stack frame using DWARF unwinding info, updating the register context.
Unwind a stack frame using DWARF unwinding info, updating the register context.
If
.eh_frame_hdr
is available, it will be used to binary search for the FDE. Otherwise, a linear scan of.eh_frame
and.debug_frame
is done to find the FDE.explicit_fde_offset
is for cases where the FDE offset is known, such as when __unwind_info defers unwinding to DWARF. This is an offset into the.eh_frame
section.