From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13538 invoked by alias); 26 Feb 2004 16:32:50 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 13526 invoked from network); 26 Feb 2004 16:32:48 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 26 Feb 2004 16:32:48 -0000 Received: from drow by nevyn.them.org with local (Exim 4.30 #1 (Debian)) id 1AwORL-0008Gv-01 for ; Thu, 26 Feb 2004 11:32:46 -0500 Date: Thu, 26 Feb 2004 16:32:00 -0000 From: Daniel Jacobowitz To: gdb@sources.redhat.com Subject: Re: Testsuite FAIL which isn't a FAIL in chng-syms.exp Message-ID: <20040226163246.GB30921@nevyn.them.org> Mail-Followup-To: gdb@sources.redhat.com References: <20040226161543.GB1396@cygbert.vinschen.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040226161543.GB1396@cygbert.vinschen.de> User-Agent: Mutt/1.5.1i X-SW-Source: 2004-02/txt/msg00390.txt.bz2 On Thu, Feb 26, 2004 at 05:15:43PM +0100, Corinna Vinschen wrote: > Hi, > > I'm looking for a good while into this testsuite FAIL. What happens > is, that the testsuite generates a FAIL which is not correct. The > expression in chng-syms.exp is this: > > gdb_run_cmd > gdb_expect { > -re "Error in re-setting .*No symbol .var1..*Program exited normally.*" { > pass "running with invalidated bpt condition after executable changes" > } > timeout { > fail "(timeout) running with invalidated bpt condition after executable changes" > } > > The output from the gdb.log file looks like this: > > `/build/sh-elf/gdb/testsuite/gdb.base/chng-syms' has changed; re-reading symbols.^M > Error in re-setting breakpoint 1:^M > No symbol "var1" in current context.^M > Starting program: /build/sh-elf/gdb/testsuite/gdb.base/chng-syms ^M > ^M > Program exited normally.^M > (gdb) FAIL: gdb.base/chng-syms.exp: (timeout) running with invalidated bpt condition after executable changes > > Does anybody understand why that's failing? The regular expression > looks right to me. I tried to change it to get it working but everything > I tried failed, except for ".*Program exited normally.*" which is not > exactly helpful. :-( Take a look at gdb_run_cmd: gdb_expect 60 { -re "The program .* has been started already.*y or n. $" { send_gdb "y\n" exp_continue } -re "Starting program: \[^\r\n\]*" {} } It eats everything up to "Starting program" so the error has been hidden. I'm not sure quite why this passes for me... aha, yes I am: `/opt/src/binutils/x86-as/gdb/testsuite/gdb.base/chng-syms' has changed; re-reading symbols. Error in re-setting breakpoint 1: No symbol "var1" in current context. Starting program: /opt/src/binutils/x86-as/gdb/testsuite/gdb.base/chng-syms Error in re-setting breakpoint 1: No symbol "var1" in current context. Error in re-setting breakpoint 1: No symbol "var1" in current context. Error in re-setting breakpoint 1: No symbol "var1" in current context. The other copies of the message come at the shared library breakpoint when we try to reset shlib_disabled breakpoints. You're probably running an embedded target that doesn't have a shared library event breakpoint. Not sure what the best fix is. Might work as a hack to add -notransfer to gdb_run_cmd: -notransfer -re "Starting program: \[^\r\n\]*" {} That will leave the "Starting program" in the buffer, and anything else transfered for that match. I'm not sure if this will break any other tests. As an aside, in the original test: > -re "Error in re-setting .*No symbol .var1..*Program exited normally.*" { is not a safe pattern; never suffix a pattern with .*. The end should always be anchored, usually to "$gdb_prompt $". -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer