[PATCH] [binutils] Handle implicit const in .debug_names

Jan Beulich jbeulich@suse.com
Fri May 22 13:03:46 GMT 2026


On 22.05.2026 14:16, Tom de Vries wrote:
> I tried to use readelf to read the debug info for gdb test-case
> gdb.dwarf2/debug-names-tu-dwarf5.exp, and ran into some trouble reading the
> .debug_names section:
> ...
> $ readelf -w debug-names-tu-dwarf5
>   ...
> Symbol table:
> [  1] #eddb6232 _start: <0><1> DW_TAG_subprogram DW_IDX_compile_unit=0
> [  2] #53a2ae86 struct_with_int_member:readelf: Warning: Unrecognized form: 0
> readelf: Error: end of data encountered whilst reading LEB
>  <0x3><2> DW_TAG_structure_type DW_IDX_type_unit=0 DW_IDX_GNU_language=0 DW_IDX_type_unitreadelf: Warning: Unrecognized form: 0
> readelf: Error: end of data encountered whilst reading LEB
> ...
> 
> The .debug_names abbreviation table contains a DW_FORM_implicit_const entry:
> ...
> .uleb128        0x2003          /* DW_IDX_GNU_language */
> .uleb128        0x21            /* DW_FORM_implicit_const */
> .sleb128        0x0002          /* DW_FORM_implicit_const value: DW_LANG_C */
> ...
> and readelf doesn't support this.
> 
> Add support for DW_FORM_implicit_const in display_debug_names, such that we
> get the expected:
> ...
> Symbol table:
> [  1] #eddb6232 _start: <0><1> DW_TAG_subprogram DW_IDX_compile_unit=0
> [  2] #53a2ae86 struct_with_int_member: <0x3><2> DW_TAG_structure_type \
>       DW_IDX_type_unit=0 DW_IDX_GNU_language=2
> ...
> ---
>  binutils/dwarf.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)

Okay.

Jan


More information about the Binutils mailing list