
When running test-case gdb.dwarf2/clang-debug-names.exp, I run into the
following warning:
...
(gdb) file clang-debug-names^M
Reading symbols from clang-debug-names...^M
warning: Section .debug_aranges in clang-debug-names has duplicate \
debug_info_offset 0xc7, ignoring .debug_aranges.^M
...
This is caused by a missing return in commit 3ee6bb113a
"[gdb/symtab] Fix
incomplete CU list assert in .debug_names".
Fix this by adding the missing return, such that we have instead this warning:
...
(gdb) file clang-debug-names^M
Reading symbols from clang-debug-names...^M
warning: Section .debug_aranges in clang-debug-names \
entry at offset 0 debug_info_offset 0 does not exists, \
ignoring .debug_aranges.^M
...
which is a known problem filed as PR25969 - "Ignoring .debug_aranges with
clang .debug_names".
Tested on x86_64-linux.
gdb/ChangeLog:
2021-02-05 Tom de Vries <tdevries@suse.de>
PR symtab/27307
* dwarf2/read.c (create_cus_from_debug_names_list): Add missing
return.
gdb/testsuite/ChangeLog:
2021-02-05 Tom de Vries <tdevries@suse.de>
PR symtab/27307
* gdb.dwarf2/clang-debug-names.exp: Check file command warnings.
57 lines
1.6 KiB
Text
57 lines
1.6 KiB
Text
# Copyright 2020-2021 Free Software Foundation, Inc.
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
load_lib dwarf.exp
|
|
|
|
# This test can only be run on targets which support DWARF-2 and use gas.
|
|
if {![dwarf2_support]} {
|
|
return 0
|
|
}
|
|
|
|
standard_testfile .c -debug.S
|
|
|
|
lassign [function_range main ${srcdir}/${subdir}/${srcfile}] \
|
|
main_start main_length
|
|
|
|
set asm_file [standard_output_file $srcfile2]
|
|
source $srcdir/$subdir/clang-debug-names.exp.tcl
|
|
|
|
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
|
[list $srcfile $asm_file] {nodebug}] } {
|
|
return -1
|
|
}
|
|
|
|
set test "no file command warnings"
|
|
if { [regexp "warning: " $gdb_file_cmd_msg] } {
|
|
set kfail_re \
|
|
[concat \
|
|
"warning: Section .debug_aranges in \[^\r\n\]* entry" \
|
|
"at offset 0 debug_info_offset 0 does not exists," \
|
|
"ignoring \\.debug_aranges\\."]
|
|
if { [regexp $kfail_re $gdb_file_cmd_msg] } {
|
|
kfail symtab/25969 $test
|
|
} else {
|
|
fail $test
|
|
}
|
|
} else {
|
|
pass $test
|
|
}
|
|
|
|
set cmd "ptype main"
|
|
set pass_re \
|
|
[multi_line \
|
|
$cmd \
|
|
"type = int \\(\\)"]
|
|
gdb_test $cmd $pass_re
|