DWARF Standard


180625.1 Andrew Cagney inconsistent initial length description - missing reference and/or TMI Editorial Open

Section 6.1.2, pg 147
For the most part the description of "*length (initial length)" look something like:

    1. unit_length (initial length)
       The size in bytes of the line number information for this compilation unit, not
       including the length field itself (see Section 7.2.2 on page 184).

there are some inconsistencies.  These are the ones I noticed:

- some definitions don't include a reference to "Section 7.2.2 on page 184":

  .debug_names: Section Header
  .debug_aranges: 6.1.2 Lookup by Address

- some definitions add an additional (now redundant?) note:

  .debug_frame: 6.4.1 Structure of Call Frame Information, page 174 (CIE), page 175 (FDE)
      ... The size of the length field plus the value of length must be an integral multiple of the address size.

- and some, to me, just provide too much information:

  .debug_info et.al.: Full and Partial Compilation Unit Headers, page 200
             Skeleton and Split Compilation Unit Headers, Page 201
             Type Unit Headers, Page 202
  .debug_aranges: 7.21 Address Range Table
  .debug_str_offsets: 7.26 String Offsets Table, Page 240
  .debug_addr: 7.27 Address Table, Page 241
  .debug_rnglists: 7.28 Range List Table, 242
  .debug_loglists: 2.19 Location List Table, 243

      A 4-byte or 12-byte unsigned integer representing the length of the
      .debug_info contribution for that compilation unit, not including the length
      field itself. In the 32-bit DWARF format, this is a 4-byte unsigned integer
      (which must be less than 0xfffffff0 ); in the 64-bit DWARF format, this
      consists of the 4-byte value 0xffffffff followed by an 8-byte unsigned
      integer that gives the actual length (see Section 7.4 on page 196).

All logos and trademarks in this site are property of their respective owner.
The comments are property of their posters, all the rest © 2007-2017 by DWARF Standards Committee.