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

"Kamil Bucki \(Nokia\) via Binutils" <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <AM8PR07MB83105B56BCA378085A34FC22EDF82@AM8PR07MB8310.eurprd07.prod.outlook.com>
Hi,

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.



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. 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).



  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.

Kamil



-----Original Message-----
From: Jan Beulich <[email protected]>
Sent: Friday, July 10, 2026 3:22 PM
To: Kamil Bucki (Nokia) <[email protected]>
Cc: [email protected]; [email protected]; [email protected]
Subject: Re: FW: [PATCH] readelf: attach location views to DW_LLE_startx_endx/startx_length loclists



[You don't often get email from [email protected]<mailto:[email protected]>. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]



CAUTION: This is an external email. Please be very careful when clicking links or opening attachments. See the URL nok.it/ext for additional information.







On 09.07.2026 10:40, Kamil Bucki (Nokia) via Binutils wrote:

> display_loclists_list only read the GNU location-view pair

> (DW_AT_GNU_locviews) for DW_LLE_offset_pair, DW_LLE_start_end and

> DW_LLE_start_length entries.  For the indexed bounded forms

> DW_LLE_startx_endx and DW_LLE_startx_length the range was decoded but

> the matching view pair was left unread, so vstart lagged behind next

> and the adjacency heuristic emitted a spurious

>

>   Warning: Hole and overlap detection requires adjacent view lists and loclists.

>

> Add the two indexed bounded forms to the guard so their view pair is

> consumed and printed like the other bounded entries.  This is not

> target specific; it reproduces on any DWARF 5 object whose producer

> emits

> startx_* loclist entries together with location views.

>

>       PR binutils/34366

>       * dwarf.c (display_loclists_list): Also read and print the

>       location view pair for DW_LLE_startx_endx and

>       DW_LLE_startx_length entries.

>

> Signed-off-by: Kamil Bucki <[email protected]<mailto:[email protected]>>



While this looks entirely plausible, I wanted to check it against some kind of spec. Thing is - I don't appear to be able to locate such a spec for DW_AT_GNU_locviews (which is what I think would be relevant here). Can you perhaps provide a pointer?



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.