Fields

endian: std.builtin.Endian,
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 deinit(di: *DwarfInfo, allocator: mem.Allocator) void

No documentation provided.

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 getSymbolName(di: *DwarfInfo, address: u64) ?[]const u8

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 section(di: DwarfInfo, dwarf_section: DwarfSection) ?[]const u8

No documentation provided.

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.

Values