Initialize with unwind information from a header loaded from an .eh_frame_hdr section, and a
pointer to the contents of the .eh_frame section.
.eh_frame_hdr may embed a binary search table of FDEs. If it does, we will use that table for
PC lookups rather than spending time constructing our own search table.
pub fn initEhFrameHdr(header: EhFrameHeader, section_vaddr: u64, section_bytes_ptr: [*]const u8) Unwind
pub fn initEhFrameHdr(header: EhFrameHeader, section_vaddr: u64, section_bytes_ptr: [*]const u8) Unwind {
return .{
.frame_section = .{
.id = .eh_frame,
.bytes = maxSlice(section_bytes_ptr),
.vaddr = header.eh_frame_vaddr,
},
.lookup = if (header.search_table) |table| .{ .eh_frame_hdr = .{
.vaddr = section_vaddr,
.table = table,
} } else null,
.cie_list = .empty,
};
}