1 # Copyright 2022-2024 Free Software Foundation, Inc. 2 3 # This program is free software; you can redistribute it and/or modify 4 # it under the terms of the GNU General Public License as published by 5 # the Free Software Foundation; either version 3 of the License, or 6 # (at your option) any later version. 7 # 8 # This program is distributed in the hope that it will be useful, 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 # GNU General Public License for more details. 12 # 13 # You should have received a copy of the GNU General Public License 14 # along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 load_lib dwarf.exp 17 18 # This test can only be run on targets which support DWARF-2 and use gas. 19 require dwarf2_support 20 21 standard_testfile _start.c debug-names.S 22 23 set func_info_vars \ 24 [get_func_info _start [list debug additional_flags=-nostartfiles]] 25 26 # Create the DWARF. 27 set asm_file [standard_output_file $srcfile2] 28 Dwarf::assemble { 29 filename $asm_file 30 add_dummy_cus 0 31 } { 32 global func_info_vars 33 foreach var $func_info_vars { 34 global $var 35 } 36 37 cu { label cu_label } { 38 compile_unit {{language @DW_LANG_C}} { 39 subprogram { 40 {DW_AT_name _start} 41 {DW_AT_low_pc $_start_start DW_FORM_addr} 42 {DW_AT_high_pc $_start_end DW_FORM_addr} 43 } 44 base_type { 45 {name int} 46 {byte_size 4 sdata} 47 {encoding @DW_ATE_signed} 48 } 49 } 50 } 51 52 # This CU is missing from the cu list in .debug_names. 53 cu {} { 54 } 55 56 debug_names {} { 57 cu cu_label 58 name _start subprogram cu_label 0xEDDB6232 59 name int base_type cu_label 0xB888030 60 } 61 } 62 63 if [prepare_for_testing "failed to prepare" $testfile "${asm_file} ${srcfile}" \ 64 [list additional_flags=-nostartfiles]] { 65 return -1 66 } 67 68 # Verify that .debug_names section is not ignored. 69 set index [have_index $binfile] 70 gdb_assert { [string equal $index ""] } ".debug_names not used" 71 72 # Verify that initially no symtab is expanded. 73 gdb_test_no_output "maint info symtabs" 74 75 # Verify that _start is found in the debuginfo, rather than in the minimal 76 # symbols, which would result instead in: 77 # $1 = {<text variable, no debug info>} $hex <_start> 78 gdb_test "print _start" " = {void \\(\\)} $hex <_start>" 79