From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24046 invoked by alias); 9 Mar 2011 14:15:49 -0000 Received: (qmail 24034 invoked by uid 22791); 9 Mar 2011 14:15:47 -0000 X-SWARE-Spam-Status: No, hits=-6.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 09 Mar 2011 14:15:26 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p29EFHOT013373 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 9 Mar 2011 09:15:18 -0500 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p29EFHtt025101; Wed, 9 Mar 2011 09:15:17 -0500 Received: from opsy.redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id p29EFGxG031927; Wed, 9 Mar 2011 09:15:17 -0500 Received: by opsy.redhat.com (Postfix, from userid 500) id 50B653782A7; Wed, 9 Mar 2011 07:15:16 -0700 (MST) From: Tom Tromey To: Jan Kratochvil Cc: Pedro Alves , gdb-patches@sourceware.org Subject: Re: Regression: [Re: RFC: change "program exited" message] References: <201103041913.09385.pedro@codesourcery.com> <201103041938.02711.pedro@codesourcery.com> <20110308065419.GA1239@host1.jankratochvil.net> Date: Wed, 09 Mar 2011 14:37:00 -0000 In-Reply-To: (Tom Tromey's message of "Tue, 08 Mar 2011 07:45:04 -0700") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-03/txt/msg00600.txt.bz2 Jan> This has a heavy regression for me such as: Jan> FAIL: gdb.base/break.exp: continue until exit at recursive next test (the program exited) Tom> I will fix it. Here is the fix. I built and regtested this on the compile farm, but we already know that may have some issues. But, I also went through the log you posted and ran every failing test locally, before and after. Some of the things in that log don't seem to be related to my patch. E.g., the attachstop-mt.exp failure. If you still see problems after this, just let me know and I will fix those too. Tom 2011-03-09 Tom Tromey * lib/gdb.exp (inferior_exited_re): Match. leading `['. Wrap in parentheses. (gdb_continue_to_end): Add "allow_extra" parameter. Use $command. * gdb.threads/thread-unwindonsignal.exp: Pass "allow_extra" argument to gdb_continue_to_end. * gdb.threads/interrupted-hand-call.exp: Pass "allow_extra" argument to gdb_continue_to_end. * gdb.cp/annota3.exp: Fix regex. * gdb.cp/annota2.exp: Fix regex. * gdb.base/shlib-call.exp: Pass "allow_extra" argument to gdb_continue_to_end. * gdb.base/call-signal-resume.exp: Revert earlier patch. * gdb.ada/tasks.exp: Pass "allow_extra" argument to gdb_continue_to_end. Index: testsuite/gdb.ada/tasks.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.ada/tasks.exp,v retrieving revision 1.5 diff -u -r1.5 tasks.exp --- testsuite/gdb.ada/tasks.exp 7 Mar 2011 16:03:01 -0000 1.5 +++ testsuite/gdb.ada/tasks.exp 9 Mar 2011 14:10:39 -0000 @@ -70,5 +70,4 @@ # Now, resume the execution and make sure that GDB does not stop when # task 4 hits the breakpoint. Continuing thus results in our program # running to completion. -gdb_continue_to_end - +gdb_continue_to_end "" continue 1 Index: testsuite/gdb.base/call-signal-resume.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/call-signal-resume.exp,v retrieving revision 1.9 diff -u -r1.9 call-signal-resume.exp --- testsuite/gdb.base/call-signal-resume.exp 7 Mar 2011 16:03:02 -0000 1.9 +++ testsuite/gdb.base/call-signal-resume.exp 9 Mar 2011 14:10:39 -0000 @@ -146,6 +146,7 @@ # Continue one last time, the program should exit normally. -gdb_continue_to_end +gdb_test "continue" "$inferior_exited_re normally." \ + "continue to program exit" return 0 Index: testsuite/gdb.base/shlib-call.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shlib-call.exp,v retrieving revision 1.22 diff -u -r1.22 shlib-call.exp --- testsuite/gdb.base/shlib-call.exp 7 Mar 2011 16:03:02 -0000 1.22 +++ testsuite/gdb.base/shlib-call.exp 9 Mar 2011 14:10:39 -0000 @@ -182,12 +182,12 @@ gdb_test "run" "Starting program:.*Breakpoint .,.*" \ "run to bp in shared library" - gdb_continue_to_end + gdb_continue_to_end "" continue 1 gdb_test "run" "Starting program:.*Breakpoint .,.*" \ "re-run to bp in shared library (PR's 16495, 18213)" - gdb_continue_to_end + gdb_continue_to_end "" continue 1 } return 0 Index: testsuite/gdb.cp/annota2.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.cp/annota2.exp,v retrieving revision 1.22 diff -u -r1.22 annota2.exp --- testsuite/gdb.cp/annota2.exp 7 Mar 2011 16:03:02 -0000 1.22 +++ testsuite/gdb.cp/annota2.exp 9 Mar 2011 14:10:39 -0000 @@ -116,7 +116,7 @@ # `a.x is 1' is asynchronous regarding to `frames-invalid'. # gdb_test_multiple "continue" "continue until exit" { - -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)*\r\na.x is 1\r\n\(\r\n\032\032frames-invalid\r\n\)*\r\n\032\032exited 0\r\n.$inferior_exited_re normally.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" { + -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)*\r\na.x is 1\r\n\(\r\n\032\032frames-invalid\r\n\)*\r\n\032\032exited 0\r\n$inferior_exited_re normally.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" { pass "continue until exit" } } Index: testsuite/gdb.cp/annota3.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.cp/annota3.exp,v retrieving revision 1.20 diff -u -r1.20 annota3.exp --- testsuite/gdb.cp/annota3.exp 7 Mar 2011 16:03:02 -0000 1.20 +++ testsuite/gdb.cp/annota3.exp 9 Mar 2011 14:10:39 -0000 @@ -116,15 +116,14 @@ # annotate-exited # send_gdb "continue\n" -gdb_expect_list "continue to exit" "$gdb_prompt$" { +gdb_expect_list "continue to exit" "$gdb_prompt$" [concat { "\r\n\032\032post-prompt\r\n" "Continuing.\r\n" "\r\n\032\032starting\r\n" "a.x is 1\r\n" - "\r\n\032\032exited 0\r\n" - ".$inferior_exited_re normally.\r\n" + "\r\n\032\032exited 0\r\n"} [list "$inferior_exited_re normally.\r\n"] { "\r\n\032\032stopped\r\n" -} +}] # # delete all breakpoints Index: testsuite/gdb.threads/interrupted-hand-call.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/interrupted-hand-call.exp,v retrieving revision 1.5 diff -u -r1.5 interrupted-hand-call.exp --- testsuite/gdb.threads/interrupted-hand-call.exp 7 Mar 2011 16:03:03 -0000 1.5 +++ testsuite/gdb.threads/interrupted-hand-call.exp 9 Mar 2011 14:10:39 -0000 @@ -86,6 +86,6 @@ # Continue one last time, the program should exit normally. -gdb_continue_to_end +gdb_continue_to_end "" continue 1 return 0 Index: testsuite/gdb.threads/thread-unwindonsignal.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp,v retrieving revision 1.6 diff -u -r1.6 thread-unwindonsignal.exp --- testsuite/gdb.threads/thread-unwindonsignal.exp 7 Mar 2011 16:03:03 -0000 1.6 +++ testsuite/gdb.threads/thread-unwindonsignal.exp 9 Mar 2011 14:10:39 -0000 @@ -110,6 +110,6 @@ # Continue one last time, the program should exit normally. -gdb_continue_to_end +gdb_continue_to_end "" continue 1 return 0 Index: testsuite/lib/gdb.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v retrieving revision 1.166 diff -u -r1.166 gdb.exp --- testsuite/lib/gdb.exp 7 Mar 2011 16:03:04 -0000 1.166 +++ testsuite/lib/gdb.exp 9 Mar 2011 14:10:39 -0000 @@ -99,7 +99,7 @@ set octal "\[0-7\]+" -set inferior_exited_re "Inferior \[0-9\]+ \\(.*\\) exited" +set inferior_exited_re "(\\\[Inferior \[0-9\]+ \\(.*\\) exited)" ### Only procedures should come after this point. @@ -3062,8 +3062,12 @@ # default is used. # COMMAND is the command to invoke. If not given, "continue" is # used. +# ALLOW_EXTRA is a flag indicating whether the test should expect +# extra output between the "Continuing." line and the program +# exiting. By default it is zero; if nonzero, any extra output +# is accepted. -proc gdb_continue_to_end {{mssg ""} {command continue}} { +proc gdb_continue_to_end {{mssg ""} {command continue} {allow_extra 0}} { global inferior_exited_re if {$mssg == ""} { @@ -3071,18 +3075,23 @@ } else { set text "continue until exit at $mssg" } + if {$allow_extra} { + set extra ".*" + } else { + set extra "" + } if [target_info exists use_gdb_stub] { if {![gdb_breakpoint "exit"]} { return 0 } - gdb_test "continue" "Continuing..*Breakpoint .*exit.*" \ + gdb_test $command "Continuing..*Breakpoint .*exit.*" \ $text } else { # Continue until we exit. Should not stop again. # Don't bother to check the output of the program, that may be # extremely tough for some remote systems. - gdb_test "continue"\ - "Continuing.\[\r\n0-9\]+(... EXIT code 0\[\r\n\]+|$inferior_exited_re normally).*"\ + gdb_test $command \ + "Continuing.\[\r\n0-9\]+${extra}(... EXIT code 0\[\r\n\]+|$inferior_exited_re normally).*"\ $text } }