Issue 210429.1: Clarify Description of Line Number Table Extended Opcodes

Author: Ron Brender
Champion: Ron Brender
Date submitted: 2021-04-29
Date revised:
Date closed: 2022-03-22
Type: Editorial
Status: Accepted
DWARF Version: 6
Section 6.2.3, pg 153
Some of the discussion of Issue 180426.2 regarding the proposed extended
DW_LNE_comment revealed that the description of line number table extended
opcodes as a group is not very clear in the document. The following proposes
an alternative description that is hopefully clearer.

1) In Section 6.2.3, p153, add a second paragraph to bullet 2 which introduces
standard opcodes:

    One standard opcode (DW_LNS_extended_op) serves as an escape that allows
    additional opcodes without reducing the number of special opcodes.

2) In Section 6.2.3, p153, bullet 3 which introduces extended opcodes, replace
the word "zero" with "DW_LNS_extended_op" (twice). The resulting paragraph
then reads

    These have a multiple byte format. The first byte is DW_LNS_extended_op;
    the next bytes are an unsigned LEB128 integer giving the number of bytes
    in the instruction (not including the initial DW_LNS_extended_op or the
    size). The remaining bytes are the instruction itself (which begins with
    a ubyte extended opcode).

3) In Section, p164, add a new code at the end of the list:

    13. DW_LNS_extended_op
         The DW_LNS_extended_op opcode takes two operands. The first is an
         unsigned LEB128 value that gives the size of the operand that follows.
         The second begins with an extended opcode which is followed by
         operands appropriate to that opcode.

4) In Section, p164, insert this new paragraph at the beginning of
the section:

     Extended opcodes are used as part of a DW_LNS_extended_op operation
     (see Section 6.2.3).

5) In Section 7.22, p236, Table 7.25, add the following at the beginning
of the table:

      DW_LNS_extended_op        0x00

Mark this entry as "New in DWARF Version 6" as usual.

2022-03-22:  Accepted.  Recategorized to editorial.