[gdb/testsuite] Add .debug_aranges in more test-cases
authorTom de Vries <tdevries@suse.de>
Fri, 27 Aug 2021 14:38:53 +0000 (16:38 +0200)
committerTom de Vries <tdevries@suse.de>
Fri, 27 Aug 2021 14:38:53 +0000 (16:38 +0200)
A couple of test-cases fail when run with target board cc-with-debug-names due
to missing .debug_aranges entries for the CUs added by the dwarf assembler.

Add a .debug_aranges entry for those CUs.

Tested on x86_64-linux.

gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp
gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp

index 4a9634e5418fa0ab72e79d8701c7709d4a8ba1e9..e65b4c8610a9cc662f6d5982c009cef7a94b6ea9 100644 (file)
@@ -52,7 +52,7 @@ Dwarf::assemble $asm_file {
     # this information being correct (w.r.t. funtion / argument types)
     # just so long as the compilation using makes use of the
     # .debug_ranges data then the test achieves its objective.
-    cu {} {
+    cu { label cu_label } {
        compile_unit {
            {language @DW_LANG_C}
            {name dw-ranges-base.c}
@@ -123,6 +123,12 @@ Dwarf::assemble $asm_file {
            range 0 [lindex $frame3_func 1]
        }
     }
+
+    aranges {} cu_label {
+       arange [lindex $main_func 0] [lindex $main_func 1]
+       arange [lindex $frame2_func 0] [lindex $frame2_func 1]
+       arange [lindex $frame3_func 0] [lindex $frame3_func 1]
+    }
 }
 
 if { [prepare_for_testing "failed to prepare" ${testfile} \
index 76b90f23976dd3126bf03f27d70b42fa070e92bd..ff12cd79f195222c013044d864c116908f4a03a3 100644 (file)
@@ -43,7 +43,7 @@ Dwarf::assemble $dwarf_asm {
     # See the comment in the .S file for the equivalent C program this is meant
     # to represent.
 
-    cu { addr_size 4 } {
+    cu { label cu_label addr_size 4 } {
        DW_TAG_compile_unit {
            {DW_AT_name $srcfile}
            {DW_AT_stmt_list $stmt_list DW_FORM_sec_offset}
@@ -93,6 +93,10 @@ Dwarf::assemble $dwarf_asm {
        include_dir "/some/directory"
        file_name "/some/directory/file.c" 0
     }
+
+    aranges {} cu_label {
+       arange __cu_low_pc __cu_high_pc
+    }
 }
 
 if { [build_executable ${testfile}.exp ${testfile} "$srcfile $dwarf_asm" \
index cf61e330ec4e3081113195a8a16a85b5697a8431..5c59777e1b61f86c8a695cc02ccd7f7b6c2533d7 100644 (file)
@@ -28,9 +28,14 @@ if {![dwarf2_support]} {
 
 standard_testfile main.c .S
 
+lassign [function_range main ${srcdir}/${subdir}/${srcfile}] \
+    main_start main_length
+
 set asm_file [standard_output_file $srcfile2]
 Dwarf::assemble $asm_file {
-    cu {} {
+    global main_start main_length
+
+    cu { label cu_start } {
        DW_TAG_compile_unit {
            {DW_AT_language @DW_LANG_C_plus_plus}
         } {
@@ -62,6 +67,10 @@ Dwarf::assemble $asm_file {
            }
        }
     }
+
+    aranges {} cu_start {
+       arange "$main_start" "$main_length"
+    }
 }
 
 if { [prepare_for_testing "failed to prepare" ${testfile} \