[Dwarf-discuss] Tables which have a unit_length header field must be contiguous.

David Blaikie dblaikie@gmail.com
Wed Mar 29 16:41:15 GMT 2023


Yeah - agreed with this whole description & I'd feel comfortable with
either of the proposed additions.

On Wed, Mar 29, 2023 at 2:15 AM Keith Walker via Dwarf-discuss
<dwarf-discuss@lists.dwarfstd.org> wrote:
>
> # Problem
>
>
>
> There is no statement if tables must be contiguous or if
>
> there can be padding between the tables.
>
>
>
> # Background
>
>
>
> Some sections have an implicit assumption that the tables in a section
>
> are contiguous so the section can be processed by serially reading the
>
> section. Sections in this category are:
>
>
>
>   .debug_info (Unit Headers, Section 7.5.1)
>
>   .debug_aranges (Address Lookup Tables, Section 6.1.2)
>
>   .debug_names (Name Index Section Header, Section 6.1.1)
>
>   .debug_frame (Section 6.4.1)
>
>
>
> All other tables may be accessed indirectly via an offset into a section,
>
> so in theory there is no need to ensure the tables are contiguous provided
>
> the tables are only accessed via these offsets.
>
>
>
> However there are use cases when this can be a problem
>
>
>
> - The file is "stripped" to just contain line information (.debug_line /
>
> .debug_line_str). The .debug_line_str was added for exactly this use case.
>
> There is now the assumption that the .debug_line section can be processed
>
> serially.
>
>
>
> - File dump utilities which list the contents of the sections serially.
>
>
>
> Sections with tables which have headers with a unit_length field:
>
>
>
>   .debug_aranges (Section 6.1.2)
>
>   .debug_addr (Section 7.27)
>
>   .debug_info / .debug_info.dwo (Section 7.5.1)
>
>   .debug_line / .debug_line.dwo  (Section 6.2.4)
>
>   .debug_loclists / .debug_loclists.dwo (Section 7.29)
>
>   .debug_names (Section 6.1.1)
>
>   .debug_rnglists / .debug_rnglists.dwo (Section 7.28)
>
>   .debug_str_offsets / .debug_str_offsets.dwo (Section 7.26)
>
>
>
> Sections with tables/contributions without headers:
>
>
>
>   .debug_abbrev / .debug_abbrev.dwo (Section 7.5.3)
>
>   .debug_frame (Section 6.4.1)
>
>   .debug_line_str
>
>   .debug_macro / .debug_macro.dwo (Section 6.3.1)
>
>   .debug_str / .debug_str.dwo
>
>
>
> It is a point for discussion on whether to only require the tables
>
> with a unit_length header field be contiguous, or should all tables be
>
> made contiguous.
>
>
>
> # Proposed Addition:
>
>
>
> 7.34 Contiguous Tables
>
>
>
> Tables which start with a unit_length field must be contiguous with the
>
> preceding table in the section or start of the section if there is no
>
> preceding table.
>
>
>
> # Alternative Proposed Addition:
>
>
>
> 7.34 Contiguous Tables
>
>
>
> Tables must be contiguous with the preceding table in the section or
>
> start of the section if there is no preceding table.
>
> IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
> --
> Dwarf-discuss mailing list
> Dwarf-discuss@lists.dwarfstd.org
> https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss


More information about the Dwarf-discuss mailing list