From: Tom de Vries Date: Tue, 11 Jun 2019 11:22:27 +0000 (+0200) Subject: [gdb/testsuite] Fix main high_pc in nonvar-access.exp X-Git-Tag: binutils-2_33~963 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8c2e74f18120dd2f2da7d653466c79dea6841b5e;p=external%2Fbinutils.git [gdb/testsuite] Fix main high_pc in nonvar-access.exp When running gdb.dwarf2/nonvar-access.exp with board readnow, we have: ... FAIL: gdb.dwarf2/nonvar-access.exp: print/x def_implicit_s ... and 12 more similar failures. I've tracked this down to the range of main being hardcoded to [_main, _main+0x10000) in the dwarf assembly: ... DW_TAG_subprogram { {name main} {DW_AT_external 1 flag} {low_pc [gdb_target_symbol main] DW_FORM_addr} {high_pc [gdb_target_symbol main]+0x10000 DW_FORM_addr} } { ... which overlaps with the .debug_info for the elf-init.c CU (containing __libc_csu_init and __libc_csu_fini). Fix this by using function_range to find the actual range of main. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-06-11 Tom de Vries PR testsuite/24521 * gdb.dwarf2/nonvar-access.exp: Fix main high_pc. --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 9c7fb0e..0eaf7bbed 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2019-06-11 Tom de Vries + PR testsuite/24521 + * gdb.dwarf2/nonvar-access.exp: Fix main high_pc. + +2019-06-11 Tom de Vries + * boards/readnow.exp: New file. 2019-06-10 Andrew Burgess diff --git a/gdb/testsuite/gdb.dwarf2/nonvar-access.exp b/gdb/testsuite/gdb.dwarf2/nonvar-access.exp index 594f590..190ad5d 100644 --- a/gdb/testsuite/gdb.dwarf2/nonvar-access.exp +++ b/gdb/testsuite/gdb.dwarf2/nonvar-access.exp @@ -27,6 +27,12 @@ standard_testfile main.c nonvar-access-dw.S set asm_file [standard_output_file $srcfile2] Dwarf::assemble $asm_file { + global srcdir subdir srcfile + + set range [function_range main ${srcdir}/${subdir}/${srcfile}] + set main_start [lindex $range 0] + set main_length [lindex $range 1] + cu {} { compile_unit { {DW_AT_name main.c} @@ -98,7 +104,7 @@ Dwarf::assemble $asm_file { {name main} {DW_AT_external 1 flag} {low_pc [gdb_target_symbol main] DW_FORM_addr} - {high_pc [gdb_target_symbol main]+0x10000 DW_FORM_addr} + {high_pc "$main_start + $main_length" DW_FORM_addr} } { # Simple variable without location. DW_TAG_variable {