Re: FW: [PATCH] readelf: attach location views to DW_LLE_startx_endx/startx_length loclists

Jan Beulich <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
On 15.07.2026 10:57, Kamil Bucki (Nokia) wrote:
> Thanks for checking. You're right that there is no entry for DW_AT_GNU_locviews in the official DWARF standard - it isn't a standardized attribute. It's a GNU (GCC) extension ("Location Views" / LVU), so the lack of a spec in the DWARF documents is expected rather than a mistake on our side.

Sure, that's understood.

> A few pointers:
> 
>   1.  Origin / status. It was introduced by Alexandre Oliva and merged into GCC 8 (patch series: https://gcc.gnu.org/legacy-ml/gcc-patches/2017-11/msg00820.html). It was proposed for standardization but is currently deferred, not accepted, by the DWARF committee: https://dwarfstd.org/issues/170427.1.html.

Neither this nor ...

> The closest thing to a written specification is the author's own design document: http://www.fsfla.org/~lxoliva/papers/sfn/dwarf6-sfn-lvu.txt (defines DW_AT_GNU_locviews, code 0x2137, its semantics and encoding).

... this helps me very much. I'm perhaps blind, but I can't spot anything
towards the encoding this patch is about, also not for DW_LLE_start_{end,length}.
Neither document mentions DW_LLE_offset_pair at all.

The proposal at dwarfstd.org is about Dwarf6 only anyway. The doc at fsfla.org
has a section on Dwarf2-5, ...

>   1.  It's emitted by stock GCC. With -gdwarf-5 and optimization (-O2/-O3), GCC produces location lists and, by default (-gvariable-location-views=auto), augments them with location views, emitting DW_AT_GNU_locviews pointing at view-pair lists placed right before the corresponding location list. The relevant source is:
> 
> *         include/dwarf2.def - the attribute definition (DW_AT_GNU_locviews, 0x2137)
> 
> *         gcc/dwarf2out.{c,cc} - the emission logic: dwarf2out_locviews_in_attribute(), add_AT_view_list(), loc_list_has_views(), output_loc_list() / dwarf2out_maybe_output_loclist_view_pair() (which write the view pairs as uleb128 pairs ahead of the range they apply to).
> 
> So this isn't something exotic - it's produced by a standard gcc -gdwarf-5 -O3 build, which is exactly the case in this report.

... as would be relevant for this case, yet I can't spot anything towards the
encoding (the pair of uleb128-s) there either. Which leaves the compiler source
as the only reference. Yet how am I certain the compiler source is actually
doing things as intended?

Jan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.