From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2205) id 70B7F3938802; Sun, 15 Mar 2020 14:15:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 70B7F3938802 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Tom de Vries To: gdb-cvs@sourceware.org Subject: [binutils-gdb] [gdb/testsuite] Fix solib-list.exp test-case for exec with debug-info X-Act-Checkin: binutils-gdb X-Git-Author: Tom de Vries X-Git-Refname: refs/heads/master X-Git-Oldrev: eaeaf44cfdc9a4096a0dd52fa0606f29d4bfd48e X-Git-Newrev: 6b9374f1e07cb250736815ff8db263199416adc6 Message-Id: <20200315141559.70B7F3938802@sourceware.org> Date: Sun, 15 Mar 2020 14:15:59 +0000 (GMT) X-BeenThere: gdb-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2020 14:15:59 -0000 https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6b9374f1e07cb250736815ff8db263199416adc6 commit 6b9374f1e07cb250736815ff8db263199416adc6 Author: Tom de Vries Date: Sun Mar 15 15:15:56 2020 +0100 [gdb/testsuite] Fix solib-list.exp test-case for exec with debug-info Since commit a2fedca99c "Implement 'set/show exec-file-mismatch'.", I see the following regression on openSUSE Leap 15.1: ... FAIL: gdb.server/solib-list.exp: non-stop 0: target remote \ (got interactive prompt) FAIL: gdb.server/solib-list.exp: non-stop 1: target remote \ (got interactive prompt) ... The first FAIL in more detail: ... (gdb) PASS: gdb.server/solib-list.exp: non-stop 0: file binfile target remote localhost:2346 Remote debugging using localhost:2346 warning: Mismatch between current exec-file /data/gdb_versions/devel/build/\ gdb/testsuite/outputs/gdb.server/solib-list/solib-list and automatically determined exec-file /lib64/ld-2.26.so exec-file-mismatch handling is currently "ask" Load new symbol table from "/lib64/ld-2.26.so"? (y or n) n warning: loading /lib64/ld-2.26.so Not confirmed. Reading /lib64/ld-linux-x86-64.so.2 from remote target... warning: File transfers from remote targets can be slow. \ Use "set sysroot" to access files locally instead. Reading /lib64/ld-linux-x86-64.so.2 from remote target... Reading symbols from target:/lib64/ld-linux-x86-64.so.2... Reading /lib64/ld-2.26.so-2.26-lp151.18.7.x86_64.debug from remote target... Reading /lib64/.debug/ld-2.26.so-2.26-lp151.18.7.x86_64.debug from remote \ target... Reading /data/gdb_versions/devel/install/lib64/debug//lib64/\ ld-2.26.so-2.26-lp151.18.7.x86_64.debug from remote target... Reading /data/gdb_versions/devel/install/lib64/debug/lib64/\ /ld-2.26.so-2.26-lp151.18.7.x86_64.debug from remote target... Reading target:/data/gdb_versions/devel/install/lib64/debug/lib64/\ /ld-2.26.so-2.26-lp151.18.7.x86_64.debug from remote target... (No debugging symbols found in target:/lib64/ld-linux-x86-64.so.2) 0x00007ffff7dd7ea0 in ?? () (gdb) FAIL: gdb.server/solib-list.exp: non-stop 0: target remote (got \ interactive prompt) ... The commit introduces the "Load new symbol table from" question, and gdb_test_multiple defaults to answering "no" and reporting the "got interactive prompt" FAIL. This FAIL is not seen on f.i. debian 10.2. The difference originates from the fact that the solib-list executable has debug-info in the openSUSE case, while it doesn't in the debian case. We can prevent the failure on openSUSE by stripping the executable from debug-info: ... + exec strip --strip-debug ${binfile} ... The difference in behaviour is a bug or improvement opportunity in the exec-file-mismatch, filed as PR25475. This patch fixes the FAIL by handling the question in the test-case. Tested on x86_64-linux. Tested on x86_64-linux with the gdbserver part of the patch introducing the test-case reverted to ensure that this still FAILs. gdb/testsuite/ChangeLog: 2020-03-15 Tom de Vries * gdb.server/solib-list.exp: Handle 'Load new symbol table from "/lib64/ld-2.26.so"? (y or n)'. Diff: --- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.server/solib-list.exp | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 7c3fd4cf4cb..9387c686a05 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-03-15 Tom de Vries + + * gdb.server/solib-list.exp: Handle + 'Load new symbol table from "/lib64/ld-2.26.so"? (y or n)'. + 2020-03-15 Tom de Vries * gdb.base/maint.exp: Use exp_continue in long lines for "maint print diff --git a/gdb/testsuite/gdb.server/solib-list.exp b/gdb/testsuite/gdb.server/solib-list.exp index 5471734e031..6f077c6a664 100644 --- a/gdb/testsuite/gdb.server/solib-list.exp +++ b/gdb/testsuite/gdb.server/solib-list.exp @@ -92,10 +92,23 @@ foreach nonstop { 0 1 } { with_test_prefix "non-stop $nonstop" { {(Are you sure you want to change the file|Load new symbol table from ".*")\? \(y or n\) } "y" set test "target $gdbserver_protocol" + set ok 0 gdb_test_multiple "target $gdbserver_protocol $gdbserver_gdbport" $test { - -re "Remote debugging using .*\r\n$gdb_prompt " { + -re "Remote debugging using" { + set ok 1 + exp_continue + } + -re {.*Load new symbol table from ".*"\? \(y or n\) } { + send_gdb "y\n" answer + exp_continue + } + -re ".*\r\n$gdb_prompt " { # Do not anchor end, there may be more output in non-stop mode. - pass $test + if ($ok) { + pass $test + } else { + fail $test + } } }