Referencing coordinates

Any debugging information entry representing an object, module, or subprogram may have a DW_AT_IBM_xref_coord attribute whose value is a data block form. This can be used to indicate all the occurrence of a variable in the program source.

The value of the DW_AT_IBM_xref_coord attribute contains at least one pair of unsigned LEB128 numbers representing the source line number and source column number at which the first character of the identifier of the referencing object appears. The source column number 0 indicates that no column has been specified. To conserve space, the source line numbers are sorted in ascending order.

Only the first pair of unsigned LEB128 contains the actual source line number and source column number. In the subsequent pairs, the first number contains the delta source line number, that is the actual source line number minus the source line number or the previous entry. The column number for each pair contains the actual source column number.

For example, in the code sample below:
               1         2         3
     01234567890123456789012345678901234567890
     ----------|---------|---------|----------
0149:            Display s15a
0150:            Compute s30 = s15a * s15a
the variable s15a appears in three places at source coordinates: 149,20;150,26 and 150,33. These 3 pairs of values are encoded as:
149,20;1,26;0,33