[gdb/testsuite] Add aranges in gdb.dwarf2/dwzbuildid.exp
authorTom de Vries <tdevries@suse.de>
Fri, 8 Sep 2023 10:27:02 +0000 (12:27 +0200)
committerTom de Vries <tdevries@suse.de>
Fri, 8 Sep 2023 10:27:02 +0000 (12:27 +0200)
While investigating the execs of gdb.dwarf2/dwzbuildid.exp using readelf I ran
into a warning:
...
$ readelf -w dwzbuildid-ok > READELF
readelf: Warning: .debug_info offset of 0x2e in .debug_aranges section does not
point to a CU header.
...

AFAICT, the warning is incorrect, I've filed PR binutils/30835 about that.

While looking at the .debug_aranges section, I noticed that the entries for
the CUs generated by the dwarf assembler are missing.

Fix this by adding the missing .debug_aranges entries.

Tested on x86_64-linux.

gdb/testsuite/gdb.dwarf2/dwzbuildid.exp

index 1aad712e32ca097276e8558369018e32ae7129be..721aef8d3441290f58e3427f17b95f1b66b4fe1e 100644 (file)
@@ -46,10 +46,13 @@ proc write_just_debugaltlink {filename dwzname buildid} {
 
        # Only the DWARF reader checks .gnu_debugaltlink, so make sure
        # there is a bit of DWARF in here.
-       cu {} {
+       cu { label cu_start } {
            compile_unit {{language @DW_LANG_C}} {
            }
        }
+       aranges {} cu_start {
+           arange {} 0 0
+       }
     }
 }
 
@@ -65,7 +68,7 @@ proc write_dwarf_file {filename buildid {value 99}} {
 
        build_id $buildid
 
-       cu {} {
+       cu { label cu_start } {
            compile_unit {{language @DW_LANG_C}} {
                int_label2: base_type {
                    {name int}
@@ -80,6 +83,10 @@ proc write_dwarf_file {filename buildid {value 99}} {
                }
            }
        }
+
+       aranges {} cu_start {
+           arange {} 0 0
+       }
     }
 }