Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › debug › Dwarf › parseDie Private Function parseDie Doc Source Private Function std.debug.Dwarf.parseDie
fn parseDie (
fr : *Reader ,
attrs_buf : []Die .Attr ,
abbrev_table : *const Abbrev .Table ,
format : Format ,
endian : Endian ,
addr_size_bytes : u8 ,
version : u16 ,
) ScanError !?Die Params File debug/Dwarf.zig: 932
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955 fn parseDie (
fr : *Reader ,
attrs_buf : []Die .Attr ,
abbrev_table : *const Abbrev .Table ,
format : Format ,
endian : Endian ,
addr_size_bytes : u8 ,
version : u16 ,
) ScanError !?Die {
const abbrev_code = try fr .takeLeb128 (u64 );
if (abbrev_code == 0 ) return null ;
const table_entry = abbrev_table .get (abbrev_code ) orelse return bad ();
const attrs = attrs_buf [0 ..table_entry .attrs .len ];
for (attrs , table_entry .attrs ) |*result_attr , attr | result_attr .* = .{
.id = attr .id ,
.value = try parseFormValue (fr , attr .form_id , format , endian , addr_size_bytes , attr .payload , version ),
};
return .{
.tag_id = table_entry .tag_id ,
.has_children = table_entry .has_children ,
.attrs = attrs ,
};
}