]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[binutils/readelf] Fix printing of dwarf4 .debug_str_offsets.dwo
authorTom de Vries <tdevries@suse.de>
Wed, 15 May 2024 07:45:55 +0000 (09:45 +0200)
committerTom de Vries <tdevries@suse.de>
Wed, 15 May 2024 07:45:55 +0000 (09:45 +0200)
commit7e4f1f4bc7ffe26524a6eb0685bd22863cdfde1e
tree98b6876e7486c33461003830f32102a3617c3b13
parent27f4c4bd1987980e86cc4e8468aaeb0d0ad7ada8
[binutils/readelf] Fix printing of dwarf4 .debug_str_offsets.dwo

When compiling a hello world with dwarf4 split dwarf:
...
$ gcc -gdwarf-4 -gsplit-dwarf hello.c -save-temps -dA
...
we have in a-hello.s these three initial entries in .debug_str_offsets:
...
.section        .debug_str_offsets.dwo,"e",@progbits
.4byte  0       // indexed string 0x0: short int
.4byte  0xa     // indexed string 0x1: /home/vries/binutils
.4byte  0x1f    // indexed string 0x2: main
...
but "readelf -ws a.out" starts at the third entry:
...
Contents of the .debug_str_offsets.dwo section (loaded from a-hello.dwo):

    Length: 0x30
       Index   Offset [String]
           0 00000000  main
...

This is a regression since commit 407115429b3 ("Modified changes for
split-dwarf and dwarf-5."), which introduced a variable
debug_str_offsets_hdr_len in display_debug_str_offsets.

Fix this by setting display_debug_str_offsets to 0 for the dwarf4 case.

PR 31734
binutils/dwarf.c
binutils/testsuite/binutils-all/readelf-debug-str-offsets-dw4.d [new file with mode: 0644]
binutils/testsuite/binutils-all/readelf-debug-str-offsets-dw4.s [new file with mode: 0644]
binutils/testsuite/binutils-all/readelf.exp