DWARF5 Errata: Difference between revisions

From wiki.dwarfstd.org
Jump to navigation Jump to search
>David.anderson
No edit summary
m (→‎DWARF5 Errata: tweaked the line about status of the page (following the Created line))
 
(19 intermediate revisions by 2 users not shown)
Line 7: Line 7:
Created 2021-10-08
Created 2021-10-08


Updated 2-21-10-08
Hopefully complete, but corrections and addtions
are always possible.


See also [[DWARF5 Clarifications]].
See also [[DWARF5 Clarifications]].
==== Section 1, Page 1 ====
ISSUE 200505.1
Delete the accidental word '''unittype'''.
==== Section 2.6.1.2 DW_OP_piece clarification pg 42 ====
ISSUE 181205.1
Add the following normative text to 2.6.1.2:
A composition operation that follows an empty
location description indicates
that the piece is undefined, for example
because it has been optimized away.


==== Section 3.2.5 DW_AT_import description Page 74 line 21 ====
==== Section 3.2.5 DW_AT_import description Page 74 line 21 ====
ISSUE 18.10.19.1
ISSUE 18.10.19.1


''a reference to the  
''a reference to the
'''normal or partial compilation unit'''  
'''normal or partial compilation unit'''
whose declarations logically
whose declarations logically
belong at the place of the imported unit entry.''
belong at the place of the imported unit entry.''
Line 21: Line 38:
Replace ''normal or partial compilation unit''
Replace ''normal or partial compilation unit''
with '''normal or partial compilation unit entry'''.
with '''normal or partial compilation unit entry'''.


==== Section 3.9 Declarations with Reduced Scope Page 94 line 26. ====
==== Section 3.9 Declarations with Reduced Scope Page 94 line 26. ====
ISSUE 200505.7  
ISSUE 200505.7


==== Section 6.1.1 Lookup By Name. Page 136. line 34. ====
b) If the address range of the containing scope is non-contiguous (see 2.17.3 on page 52) the value of this attribute
is the offset in bytes of the beginning of the address range for the scope of the entity from the beginning of the first range list entry for the containing scope that is not a base address entry, '''a default location entry''' or an end-of-list entry.
 
The phrase ''', a default location entry''' should be removed, it does not apply here.
==== Section 6.1.1 Lookup By Name. Page 136. Line 34 (last line of the page). ====
ISSUE 200505.2
ISSUE 200505.2


Line 34: Line 56:
Comment: Load module is a term that is no longer in common use.
Comment: Load module is a term that is no longer in common use.


"b) If the address range of the containing scope is non-contiguous
==== Section 6.1.1.4.1 Section Header (.debug_names) page 144 lines 5-10 ====
(see 2.17.3 on page 52) the value of this attribute
ISSUE 200505.4
is the offset in bytes of the beginning of the address range for the scope of the entity from the beginning of the first range list entry for the containing scope that is not a base address
entry, '''a default location entry''' or an end-of-list entry."


The phrase ''', a default location entry''' should be removed, it does not apply here.
''11. Augmentation_string...''
 
''A vendor-specific augmentation string, which
provides additional information about the contents
of this index.'' ...
''The '''string is padded''' with null characters to a multiple
of four bytes in length.''
 
The field is best thought of as a sequence of bytes with the length
given in the '''augmentation_string_size''' field.
 
The '''four character vendor ID''' is best though of as a
four byte vendor ID, there was no intent to allow multi-byte
characters as the vendor ID.
 
==== Section 6.1.1.4.5  text error  Page 145 line 16 ====
ISSUE 210218.1
Following '''name, as it appears in the source code, should be stored in the name table'''
one sees:
'''name table.name index!case folding'''
 
which is
a result of a mistyped document indexing command.
 
==== Section 6.2.2 State Machine Registers Page 152 ====
ISSUE 200505.6
 
Register Name: discriminator:
 
Where only one block exists for a given
source position, the discriminator value
'''is be''' zero.
 
Replace '''is be''' with 'is'.
 
==== Section 6.2.4 Line Number Program Header page 156 line 27 ====
ISSUE 180914.1
 
''15. directories_count (ULEB128)
A count of the number of entries that occur
in the following directories field,''
 
A note that this is new in DWARF5 was accidentally omitted.
Such note will not appear in DWARF6, such notes
are only for the first time an item appears.
 
==== Section 7.4 .debug_rnglists,.debug_loclists Page 198 line 11 ====
ISSUE 210622.1
 
''offsets '''the follow''' the header''
 
should be
 
''offsets '''that follow''' the header''
 
==== Section 7.4 section headers 32/64bit  Page 198 line 14,15 ====
ISSUE 180326.1
 
"The 32-bit and 64-bit DWARF format conventions must not
be intermixed within a single compilation unit."
 
This belongs belongs on page 196 as it's a requirement
for all headers within a single compilation unit.
 
==== Section 7.5.3, Table 7.3 0xffff rendered in tables Page 206 ====
ISSUE 180613.1
 
"DW_TAG_hi_user                '''0x f f f f'''"
 
The value is meant to be 0xffff
 
And similar for Table 7.5
 
"DW_AT_hi_user                  '''0x3 f f f'''"
 
The value is meant to be 0x3fff
 
==== Section 7.5 DW_AT_call_origin class page 211 ====
Table 7.5: Attribute encodings
ISSUE 171103.1
 
 
"DW_AT_call_origin 0x7f class '''exprloc'''"
 
is incorrect. It should be
 
"DW_AT_call_origin 0x7f class '''reference'''"
 
==== Section E.3.2 file-designator description Page 388 lines 22-24 ====
ISSUE 171130.1


"References to other .debug_info sections follow the
approach suggested above, but the naming rule is
slightly different in that the <file-designator> should be
interpreted as a '''<file-designator>'''."


This page is incomplete.
The final hyphenated word "<file-designator>" should be
David Anderson
"'''<function-designator>'''".

Latest revision as of 14:54, 30 June 2022

DWARF5 Errata

Describing typographical errors or ambiguities in the DWARF5 Standard (released in 2017). ISSUE refers to the numbered ISSUES page on dwarfstd.org

Created 2021-10-08

Hopefully complete, but corrections and addtions are always possible.

See also DWARF5 Clarifications.

Section 1, Page 1

ISSUE 200505.1

Delete the accidental word unittype.

Section 2.6.1.2 DW_OP_piece clarification pg 42

ISSUE 181205.1

Add the following normative text to 2.6.1.2:

A composition operation that follows an empty location description indicates that the piece is undefined, for example because it has been optimized away.


Section 3.2.5 DW_AT_import description Page 74 line 21

ISSUE 18.10.19.1

a reference to the normal or partial compilation unit whose declarations logically belong at the place of the imported unit entry.

Replace normal or partial compilation unit with normal or partial compilation unit entry.


Section 3.9 Declarations with Reduced Scope Page 94 line 26.

ISSUE 200505.7

b) If the address range of the containing scope is non-contiguous (see 2.17.3 on page 52) the value of this attribute is the offset in bytes of the beginning of the address range for the scope of the entity from the beginning of the first range list entry for the containing scope that is not a base address entry, a default location entry or an end-of-list entry.

The phrase , a default location entry should be removed, it does not apply here.

Section 6.1.1 Lookup By Name. Page 136. Line 34 (last line of the page).

ISSUE 200505.2

index that covers the entire load module.

Replace 'load module' by 'module'.

Comment: Load module is a term that is no longer in common use.

Section 6.1.1.4.1 Section Header (.debug_names) page 144 lines 5-10

ISSUE 200505.4

11. Augmentation_string...

A vendor-specific augmentation string, which provides additional information about the contents of this index. ... The string is padded with null characters to a multiple of four bytes in length.

The field is best thought of as a sequence of bytes with the length given in the augmentation_string_size field.

The four character vendor ID is best though of as a four byte vendor ID, there was no intent to allow multi-byte characters as the vendor ID.

Section 6.1.1.4.5 text error Page 145 line 16

ISSUE 210218.1

Following name, as it appears in the source code, should be stored in the name table one sees: name table.name index!case folding

which is a result of a mistyped document indexing command.

Section 6.2.2 State Machine Registers Page 152

ISSUE 200505.6

Register Name: discriminator:

Where only one block exists for a given source position, the discriminator value is be zero.

Replace is be with 'is'.

Section 6.2.4 Line Number Program Header page 156 line 27

ISSUE 180914.1

15. directories_count (ULEB128) A count of the number of entries that occur in the following directories field,

A note that this is new in DWARF5 was accidentally omitted. Such note will not appear in DWARF6, such notes are only for the first time an item appears.

Section 7.4 .debug_rnglists,.debug_loclists Page 198 line 11

ISSUE 210622.1

offsets the follow the header

should be

offsets that follow the header

Section 7.4 section headers 32/64bit Page 198 line 14,15

ISSUE 180326.1

"The 32-bit and 64-bit DWARF format conventions must not be intermixed within a single compilation unit."

This belongs belongs on page 196 as it's a requirement for all headers within a single compilation unit.

Section 7.5.3, Table 7.3 0xffff rendered in tables Page 206

ISSUE 180613.1

"DW_TAG_hi_user 0x f f f f"

The value is meant to be 0xffff

And similar for Table 7.5

"DW_AT_hi_user 0x3 f f f"

The value is meant to be 0x3fff

Section 7.5 DW_AT_call_origin class page 211

Table 7.5: Attribute encodings ISSUE 171103.1


"DW_AT_call_origin 0x7f class exprloc"

is incorrect. It should be

"DW_AT_call_origin 0x7f class reference"

Section E.3.2 file-designator description Page 388 lines 22-24

ISSUE 171130.1

"References to other .debug_info sections follow the approach suggested above, but the naming rule is slightly different in that the <file-designator> should be interpreted as a <file-designator>."

The final hyphenated word "<file-designator>" should be "<function-designator>".