From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31729 invoked by alias); 3 Mar 2011 21:18:26 -0000 Received: (qmail 31720 invoked by uid 22791); 3 Mar 2011 21:18:22 -0000 X-SWARE-Spam-Status: No, hits=-5.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-outbound-2.vmware.com (HELO smtp-outbound-2.vmware.com) (65.115.85.73) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 03 Mar 2011 21:18:13 +0000 Received: from mailhost2.vmware.com (mailhost2.vmware.com [10.16.67.167]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id 0EEA14F003; Thu, 3 Mar 2011 13:18:11 -0800 (PST) Received: from msnyder-server.eng.vmware.com (promd-2s-dhcp138.eng.vmware.com [10.20.124.138]) by mailhost2.vmware.com (Postfix) with ESMTP id ED9DC8EE91; Thu, 3 Mar 2011 13:18:10 -0800 (PST) Message-ID: <4D700592.8050406@vmware.com> Date: Thu, 03 Mar 2011 21:18:00 -0000 From: Michael Snyder User-Agent: Thunderbird 2.0.0.24 (X11/20101201) MIME-Version: 1.0 To: Tom Tromey CC: "gdb-patches@sourceware.org" Subject: Re: RFC: change "program exited" message References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes 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/msg00211.txt.bz2 Tom Tromey wrote: > I would appreciate comments on this patch. > In the absence of comments I will check it in. > > If you do multi-inferior debugging, you can wind up with output like > (actual cut-and-paste): > > [New process 24959] > [New process 24960] > > Program exited with code 0177. > > Program exited with code 0177. > [New process 24961] > [New process 24962] > > Program exited normally. > > Program exited normally. > > It is hard to see what is going on, because the PID is not reported in > the exit message. > > This patch changes GDB to print: > > [Inferior 25036 exited normally] Can I suggest "Process 25036"? > > Most of the work was updating the test suite and writing the ChangeLog. > > Built and regtested on x86-64 (compile farm). > > Tom > > 2011-03-03 Tom Tromey > > * infrun.c (print_exited_reason): Include inferior PID in > message. > > 2011-03-03 Tom Tromey > > * lib/opencl.exp (skip_opencl_tests): Update for exit message > change. > * lib/mi-support.exp (mi_gdb_test): Update for exit message > change. > * lib/gdb.exp (gdb_test_multiple): Update comment. Update for > exit message change. > (skip_altivec_tests): Update for exit message change. > (skip_vsx_tests): Likewise. > (gdb_continue_to_end): Likewise. > (gdb_continue_off_end): New proc. > * lib/cell.exp (skip_cell_tests): Update for exit message change. > * gdb.threads/tls.exp: Update for exit message change. > * gdb.threads/thread-unwindonsignal.exp: Use > gdb_continue_off_end. > * gdb.threads/step.exp (step_it): Update for exit message change. > (continue_all): Likewise. > * gdb.threads/print-threads.exp (test_all_threads): Update for > exit message change. > * gdb.threads/interrupted-hand-call.exp: Use > gdb_continue_off_end. > * gdb.threads/execl.exp: Use gdb_continue_off_end. > * gdb.python/py-prettyprint.exp (run_lang_tests): Use > gdb_continue_off_end. > * gdb.hp/gdb.objdbg/objdbg02.exp: Use gdb_continue_off_end. > * gdb.hp/gdb.objdbg/objdbg01.exp: Use gdb_continue_off_end. > * gdb.hp/gdb.defects/solib-d.exp: Update for exit message change. > * gdb.cp/method.exp: Update for exit message change. > * gdb.cp/mb-templates.exp: Update for exit message change. > * gdb.cp/mb-inline.exp: Use gdb_continue_off_end. > * gdb.cp/annota3.exp: Update for exit message change. > * gdb.cp/annota2.exp: Update for exit message change. > * gdb.cell/fork.exp: Use gdb_continue_off_end. > * gdb.base/term.exp: Update for exit message change. > * gdb.base/step-test.exp (test_i): Update for exit message change. > * gdb.base/sigstep.exp (advance): Update for exit message change. > (advancei): Likewise. > * gdb.base/siginfo.exp: Update for exit message change. > * gdb.base/shlib-call.exp: Use gdb_continue_off_end. > * gdb.base/reread.exp: Use gdb_continue_off_end. > * gdb.base/langs.exp: Use gdb_continue_off_end. > * gdb.base/interrupt.exp: Update for exit message change. > * gdb.base/gdb1555.exp: Update for exit message change. > * gdb.base/exe-lock.exp: Use gdb_continue_off_end. > * gdb.base/ending-run.exp: Update for exit message change. > * gdb.base/chng-syms.exp: Update for exit message change. > * gdb.base/checkpoint.exp: Update for exit message change. > * gdb.base/catch-syscall.exp (check_for_program_end): Use > gdb_continue_off_end. > (test_catch_syscall_with_wrong_args): Likewise. > * gdb.base/call-signal-resume.exp: Use gdb_continue_off_end. > * gdb.base/break-interp.exp (test_ld): Update for exit message > change. > * gdb.base/bang.exp: Update for exit message change. > * gdb.base/attach.exp (do_attach_tests): Use gdb_continue_off_end. > (do_call_attach_tests): Likewise. > * gdb.base/a2-run.exp: Update for exit message change. > * gdb.arch/ppc-dfp.exp: Update for exit message change. > * gdb.ada/tasks.exp: Use gdb_continue_off_end. > * gdb.ada/catch_ex.exp: Use gdb_continue_off_end. > > > diff --git a/gdb/infrun.c b/gdb/infrun.c > index 274082d..09569af 100644 > --- a/gdb/infrun.c > +++ b/gdb/infrun.c > @@ -5488,22 +5488,28 @@ print_signal_exited_reason (enum target_signal siggnal) > static void > print_exited_reason (int exitstatus) > { > + struct inferior *inf = current_inferior (); > + > annotate_exited (exitstatus); > if (exitstatus) > { > if (ui_out_is_mi_like_p (uiout)) > ui_out_field_string (uiout, "reason", > async_reason_lookup (EXEC_ASYNC_EXITED)); > - ui_out_text (uiout, "\nProgram exited with code "); > + ui_out_text (uiout, "[Inferior "); > + ui_out_text (uiout, plongest (inf->pid)); > + ui_out_text (uiout, " exited with code "); > ui_out_field_fmt (uiout, "exit-code", "0%o", (unsigned int) exitstatus); > - ui_out_text (uiout, ".\n"); > + ui_out_text (uiout, "]\n"); > } > else > { > if (ui_out_is_mi_like_p (uiout)) > ui_out_field_string > (uiout, "reason", async_reason_lookup (EXEC_ASYNC_EXITED_NORMALLY)); > - ui_out_text (uiout, "\nProgram exited normally.\n"); > + ui_out_text (uiout, "[Inferior "); > + ui_out_text (uiout, plongest (inf->pid)); > + ui_out_text (uiout, " exited normally]\n"); > } > /* Support the --return-child-result option. */ > return_child_result_value = exitstatus; > diff --git a/gdb/testsuite/gdb.ada/catch_ex.exp b/gdb/testsuite/gdb.ada/catch_ex.exp > index b0a4000..d692aca 100644 > --- a/gdb/testsuite/gdb.ada/catch_ex.exp > +++ b/gdb/testsuite/gdb.ada/catch_ex.exp > @@ -141,8 +141,6 @@ gdb_test "continue" \ > "Continuing\.$eol$catchpoint_msg$eol.*SPOT4" \ > "continuing to unhandled exception" > > -gdb_test "continue" \ > - "Continuing\..*Program exited.*" \ > - "continuing to program completion" > +gdb_continue_off_end "continue" "continuing to program completion" > > > diff --git a/gdb/testsuite/gdb.ada/tasks.exp b/gdb/testsuite/gdb.ada/tasks.exp > index bced9f8..166f18c 100644 > --- a/gdb/testsuite/gdb.ada/tasks.exp > +++ b/gdb/testsuite/gdb.ada/tasks.exp > @@ -70,7 +70,5 @@ gdb_test "info tasks" \ > # 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_test "continue" \ > - ".*Program exited normally\..*" \ > - "continue until end of program" > +gdb_continue_off_end "continue" "continue until end of program" > > diff --git a/gdb/testsuite/gdb.arch/ppc-dfp.exp b/gdb/testsuite/gdb.arch/ppc-dfp.exp > index 10fbd3c..3a57b10 100644 > --- a/gdb/testsuite/gdb.arch/ppc-dfp.exp > +++ b/gdb/testsuite/gdb.arch/ppc-dfp.exp > @@ -59,7 +59,7 @@ gdb_run_cmd > # When the prompt comes back we'll be at the Set DFP rounding mode breakpoint. > # Unless the program bails out after checking AT_HWCAP. > gdb_expect { > - -re "Program exited with code 01.\[\r\n\]+$gdb_prompt $" { > + -re "Inferior \[0-9\]+ exited with code 01.\[\r\n\]+$gdb_prompt $" { > unsupported "This machine doesn't support Decimal Floating Point." > return -1 > } > diff --git a/gdb/testsuite/gdb.base/a2-run.exp b/gdb/testsuite/gdb.base/a2-run.exp > index d26a202..fbbf7a4 100644 > --- a/gdb/testsuite/gdb.base/a2-run.exp > +++ b/gdb/testsuite/gdb.base/a2-run.exp > @@ -42,7 +42,7 @@ if [istarget "*-*-vxworks*"] then { > set timeout 120 > verbose "Timeout is now $timeout seconds" 2 > gdb_expect { > - "Program exited normally" { > + "Inferior \[0-9\]+ exited normally" { > unresolved "run \"$testfile\" with no args" > } > -re "usage: factorial " { > @@ -57,19 +57,19 @@ if [istarget "*-*-vxworks*"] then { > gdb_expect -re "$gdb_prompt $" {} > } else { > gdb_expect { > - -re ".*usage: factorial .*Program exited with code 01\.\r\n$gdb_prompt $" { > + -re ".*usage: factorial .*Inferior \[0-9\]+ exited with code 01.\r\n$gdb_prompt $" { > pass "run \"$testfile\" with no args" > pass "no spurious messages at program exit" > } > - -re ".*usage: factorial .*Program exited with code 01.*$gdb_prompt $" { > + -re ".*usage: factorial .*Inferior \[0-9\]+ exited with code 01.*$gdb_prompt $" { > pass "run \"$testfile\" with no args" > fail "no spurious messages at program exit" > } > - -re ".*usage: factorial .* EXIT code 1.*Program exited normally\.\r\n$gdb_prompt $" { > + -re ".*usage: factorial .* EXIT code 1.*Inferior \[0-9\]+ exited normally.\r\n$gdb_prompt $" { > pass "run \"$testfile\" with no args (exit wrapper)" > pass "no spurious messages at program exit" > } > - -re ".*usage: factorial .* EXIT code 1.*Program exited normally.*$gdb_prompt $" { > + -re ".*usage: factorial .* EXIT code 1.*Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > pass "run \"$testfile\" with no args (exit wrapper)" > fail "no spurious messages at program exit" > } > @@ -97,7 +97,7 @@ if [istarget "*-*-vxworks*"] then { > set timeout 120 > verbose "Timeout is now $timeout seconds" 2 > gdb_expect { > - "Program exited normally" { > + "Inferior \[0-9\]+ exited normally" { > unresolved "run \"$testfile\" with arg" > } > "120" { > @@ -129,7 +129,7 @@ if [istarget "*-*-vxworks*"] then { > set timeout 120 > verbose "Timeout is now $timeout seconds" 2 > gdb_expect { > - "Program exited normally" { > + "Inferior \[0-9\]+ exited normally" { > unresolved "run \"$testfile\" again with same args" > } > "120" { pass "run \"$testfile\" again with same args" } > @@ -161,7 +161,7 @@ if [istarget "*-*-vxworks*"] then { > set timeout 120 > verbose "Timeout is now $timeout seconds" 2 > gdb_expect { > - "Program exited normally" { > + "Inferior \[0-9\]+ exited normally" { > unresolved "run after setting args to nil" > } > "usage: factorial " { > @@ -202,7 +202,7 @@ if [istarget "*-*-vxworks*"] then { > set timeout 120 > verbose "Timeout is now $timeout seconds" 2 > gdb_expect { > - "Program exited normally" { > + "Inferior \[0-9\]+ exited normally" { > unresolved "run \"$testfile\" again after setting args" > } > "720" { > diff --git a/gdb/testsuite/gdb.base/attach.exp b/gdb/testsuite/gdb.base/attach.exp > index 78df003..10656c0 100644 > --- a/gdb/testsuite/gdb.base/attach.exp > +++ b/gdb/testsuite/gdb.base/attach.exp > @@ -258,7 +258,7 @@ proc do_attach_tests {} { > > # Allow the test process to exit, to cleanup after ourselves. > > - gdb_test "continue" "Program exited normally." "after attach2, exit" > + gdb_continue_off_end "continue" "after attach2, exit" > > # Make sure we don't leave a process around to confuse > # the next test run (and prevent the compile by keeping > @@ -365,7 +365,7 @@ proc do_call_attach_tests {} { > # Get rid of the process > > gdb_test "p should_exit = 1" > - gdb_test "c" "Program exited normally." > + gdb_continue_off_end > > # Be paranoid > > diff --git a/gdb/testsuite/gdb.base/bang.exp b/gdb/testsuite/gdb.base/bang.exp > index efe2295..cf953a1 100644 > --- a/gdb/testsuite/gdb.base/bang.exp > +++ b/gdb/testsuite/gdb.base/bang.exp > @@ -39,7 +39,7 @@ gdb_load ${binfile} > > gdb_run_cmd > gdb_expect { > - -re ".*Program exited normally.*$gdb_prompt $" { > + -re ".*Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > pass "run program" > } > timeout { > diff --git a/gdb/testsuite/gdb.base/break-interp.exp b/gdb/testsuite/gdb.base/break-interp.exp > index 3df4dcb..fd1a768 100644 > --- a/gdb/testsuite/gdb.base/break-interp.exp > +++ b/gdb/testsuite/gdb.base/break-interp.exp > @@ -494,7 +494,7 @@ proc test_ld {file ifmain trynosym displacement} { > } > exp_continue > } > - -re "Program exited (normally|with code \[0-9\]+)\\.\r\n$gdb_prompt $" { > + -re "Inferior \[0-9\]+ exited (normally|with code \[0-9\]+).\r\n$gdb_prompt $" { > # Do not check the binary filename as it may be truncated. > pass $test > } > diff --git a/gdb/testsuite/gdb.base/call-signal-resume.exp b/gdb/testsuite/gdb.base/call-signal-resume.exp > index b85691c..c9b2176 100644 > --- a/gdb/testsuite/gdb.base/call-signal-resume.exp > +++ b/gdb/testsuite/gdb.base/call-signal-resume.exp > @@ -146,7 +146,6 @@ gdb_test "continue" "Breakpoint \[0-9\]*, handle_signal.*" \ > > # Continue one last time, the program should exit normally. > > -gdb_test "continue" "Program exited normally." \ > - "continue to program exit" > +gdb_continue_off_end > > return 0 > diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp > index d25df17..a8a5d54 100644 > --- a/gdb/testsuite/gdb.base/catch-syscall.exp > +++ b/gdb/testsuite/gdb.base/catch-syscall.exp > @@ -167,7 +167,7 @@ proc check_for_program_end {} { > delete_breakpoints > > set thistest "successful program end" > - gdb_test "continue" "Program exited normally.*" $thistest > + gdb_continue_off_end continue $thistest > > } > > @@ -231,7 +231,7 @@ proc test_catch_syscall_with_wrong_args {} { > # If it doesn't, everything is right (since we don't have > # a syscall named "mlock" in it). Otherwise, this is a failure. > set thistest "catch syscall with unused syscall ($syscall_name)" > - gdb_test "continue" "Program exited normally.*" $thistest > + gdb_continue_off_end "continue" $thistest > } > > proc test_catch_syscall_restarting_inferior {} { > diff --git a/gdb/testsuite/gdb.base/checkpoint.exp b/gdb/testsuite/gdb.base/checkpoint.exp > index f34b0d1..6f15fa9 100644 > --- a/gdb/testsuite/gdb.base/checkpoint.exp > +++ b/gdb/testsuite/gdb.base/checkpoint.exp > @@ -277,23 +277,23 @@ gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 10" > > delete_breakpoints > gdb_test "continue" \ > - "Deleting copy.*Program exited normally.*Switching to.*" \ > + "Deleting copy.*Inferior \[0-9\]+ exited normally.*Switching to.*" \ > "Exit, dropped into next fork one" > > gdb_test "continue" \ > - "Deleting copy.*Program exited normally.*Switching to.*" \ > + "Deleting copy.*Inferior \[0-9\]+ exited normally.*Switching to.*" \ > "Exit, dropped into next fork two" > > gdb_test "continue" \ > - "Deleting copy.*Program exited normally.*Switching to.*" \ > + "Deleting copy.*Inferior \[0-9\]+ exited normally.*Switching to.*" \ > "Exit, dropped into next fork three" > > gdb_test "continue" \ > - "Deleting copy.*Program exited normally.*Switching to.*" \ > + "Deleting copy.*Inferior \[0-9\]+ exited normally.*Switching to.*" \ > "Exit, dropped into next fork four" > > gdb_test "continue" \ > - "Deleting copy.*Program exited normally.*Switching to.*" \ > + "Deleting copy.*Inferior \[0-9\]+ exited normally.*Switching to.*" \ > "Exit, dropped into next fork five" > > # > diff --git a/gdb/testsuite/gdb.base/chng-syms.exp b/gdb/testsuite/gdb.base/chng-syms.exp > index d2567e7..aca075e 100644 > --- a/gdb/testsuite/gdb.base/chng-syms.exp > +++ b/gdb/testsuite/gdb.base/chng-syms.exp > @@ -100,7 +100,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb > > gdb_run_cmd > gdb_expect { > - -re ".*Program exited normally.*$gdb_prompt $" { > + -re ".*Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > pass "running with invalidated bpt condition after executable changes" > } > -re ".*Breakpoint .*,( 0x.* in)? (\[^ \]*)exit .*$gdb_prompt $" { > diff --git a/gdb/testsuite/gdb.base/ending-run.exp b/gdb/testsuite/gdb.base/ending-run.exp > index 43c46f8..782c206 100644 > --- a/gdb/testsuite/gdb.base/ending-run.exp > +++ b/gdb/testsuite/gdb.base/ending-run.exp > @@ -146,7 +146,7 @@ gdb_test_multiple "next" "step out of main" { > # This is what happens on mingw32ce. > pass "step out of main" > } > - -re ".*Program exited normally.*$gdb_prompt $" { > + -re ".*Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > # This is what happens on Linux i86 (and I would expect others) > set program_exited 1 > pass "step out of main" > @@ -209,21 +209,21 @@ if {! [target_info exists use_gdb_stub] > global program_exited; > if {[eval expr $program_exited == 0]} { > gdb_test_multiple "n" "step to end of run" { > - -re "Program exited normally.*$gdb_prompt $" { > + -re "Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > # If we actually have debug info for the start function, > # then we won't get the "Single-stepping until function > # exit" message. > pass "step to end of run" > set program_exited_normally 1 > } > - -re "Single.*EXIT code 0\r\n.*Program exited normally.*$gdb_prompt $" { > + -re "Single.*EXIT code 0\r\n.*Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > pass "step to end of run (status wrapper)" > set program_exited_normally 1 > } > -re "Single.*EXIT code 0\r\n.*$gdb_prompt $" { > pass "step to end of run (status wrapper)" > } > - -re ".*Single.*Program exited.*$gdb_prompt $" { > + -re ".*Single.*Inferior \[0-9\]+ exited.*$gdb_prompt $" { > pass "step to end of run" > set program_exited_normally 1 > } > diff --git a/gdb/testsuite/gdb.base/exe-lock.exp b/gdb/testsuite/gdb.base/exe-lock.exp > index e4bbbbe..011b9d2 100644 > --- a/gdb/testsuite/gdb.base/exe-lock.exp > +++ b/gdb/testsuite/gdb.base/exe-lock.exp > @@ -50,9 +50,7 @@ if ![runto_main] then { > continue > } > > -gdb_test "continue" \ > - ".*Program exited normally\\." \ > - "continue until program exits" > +gdb_continue_off_end > > # Try deleting the executable file, now that the program has exited, > # and make sure that the deletion worked by verifying that the exe > diff --git a/gdb/testsuite/gdb.base/gdb1555.exp b/gdb/testsuite/gdb.base/gdb1555.exp > index 8c3e8ba..21891f8 100644 > --- a/gdb/testsuite/gdb.base/gdb1555.exp > +++ b/gdb/testsuite/gdb.base/gdb1555.exp > @@ -77,7 +77,7 @@ gdb_test_multiple "n" $name \ > -re "\[0-9\]+.*return a;.*$gdb_prompt $" { > pass $name > } > - -re "Single stepping until exit from function .*, \r\nwhich has no line number information.\r\n\r\nProgram exited normally.*$gdb_prompt $" { > + -re "Single stepping until exit from function .*, \r\nwhich has no line number information.\r\n\r\nInferior \[0-9\]+ exited normally.*$gdb_prompt $" { > kfail "gdb/1555" $name > } > } > diff --git a/gdb/testsuite/gdb.base/interrupt.exp b/gdb/testsuite/gdb.base/interrupt.exp > index cce7fca..aabc316 100644 > --- a/gdb/testsuite/gdb.base/interrupt.exp > +++ b/gdb/testsuite/gdb.base/interrupt.exp > @@ -201,7 +201,7 @@ if ![file exists $binfile] then { > > send_gdb "\004" > gdb_expect { > - -re "end of file.*Program exited normally.*$gdb_prompt $" { > + -re "end of file.*Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > pass "send end of file" > } > -re "$gdb_prompt $" { fail "send end of file" } > diff --git a/gdb/testsuite/gdb.base/langs.exp b/gdb/testsuite/gdb.base/langs.exp > index a42f2d8..e3c3847 100644 > --- a/gdb/testsuite/gdb.base/langs.exp > +++ b/gdb/testsuite/gdb.base/langs.exp > @@ -146,8 +146,7 @@ if [runto csub] then { > gdb_breakpoint "exit" > gdb_test "cont" "Breakpoint .*exit.*" "continue to exit in langs.exp" > } else { > - gdb_test "cont" "Program exited normally\\..*" \ > - "continue to exit in langs.exp" > + gdb_continue_off_end > } > } > > diff --git a/gdb/testsuite/gdb.base/reread.exp b/gdb/testsuite/gdb.base/reread.exp > index e562285..8f499e7 100644 > --- a/gdb/testsuite/gdb.base/reread.exp > +++ b/gdb/testsuite/gdb.base/reread.exp > @@ -149,8 +149,7 @@ if [is_remote target] { > > # This time, let the program run to completion. If GDB checks the > # executable file's timestamp now, it won't notice any change. > - gdb_test "continue" ".*Program exited.*" \ > - "second pass: continue to completion" > + gdb_continue_off_end "continue" "second pass: continue to completion" > > # Now move the newer executable into place, and re-run. GDB > # should still notice that the executable file has changed, > diff --git a/gdb/testsuite/gdb.base/shlib-call.exp b/gdb/testsuite/gdb.base/shlib-call.exp > index f8601c7..230942d 100644 > --- a/gdb/testsuite/gdb.base/shlib-call.exp > +++ b/gdb/testsuite/gdb.base/shlib-call.exp > @@ -182,12 +182,12 @@ if ![is_remote target] { > gdb_test "run" "Starting program:.*Breakpoint .,.*" \ > "run to bp in shared library" > > - gdb_test "cont" ".*Program exited normally..*" > + gdb_continue_off_end > > gdb_test "run" "Starting program:.*Breakpoint .,.*" \ > "re-run to bp in shared library (PR's 16495, 18213)" > > - gdb_test "cont" ".*Program exited normally..*" > + gdb_continue_off_end > } > > return 0 > diff --git a/gdb/testsuite/gdb.base/siginfo.exp b/gdb/testsuite/gdb.base/siginfo.exp > index db9fd5c..8b4a233 100644 > --- a/gdb/testsuite/gdb.base/siginfo.exp > +++ b/gdb/testsuite/gdb.base/siginfo.exp > @@ -83,7 +83,7 @@ gdb_test_multiple "step" "${test}" { > send_gdb "step\n" > exp_continue > } > - -re "Program exited normally.*${gdb_prompt} $" { > + -re "Inferior \[0-9\]+ exited normally.*${gdb_prompt} $" { > kfail gdb/1613 "$test (program exited)" > } > -re "(while ..done|return 0).*${gdb_prompt} $" { > diff --git a/gdb/testsuite/gdb.base/sigstep.exp b/gdb/testsuite/gdb.base/sigstep.exp > index 98e0e3d..ae33330 100644 > --- a/gdb/testsuite/gdb.base/sigstep.exp > +++ b/gdb/testsuite/gdb.base/sigstep.exp > @@ -88,7 +88,7 @@ proc advance { i } { > send_gdb "$i\n" > exp_continue -continue_timer > } > - -re "Program exited normally.*${gdb_prompt} $" { > + -re "Inferior \[0-9\]+ exited normally.*${gdb_prompt} $" { > setup_kfail gdb/1639 powerpc-*-*bsd* > fail "$test (program exited)" > } > @@ -144,7 +144,7 @@ proc advancei { i } { > -re "main .*${gdb_prompt} $" { > fail "$test (in main)" > } > - -re "Program exited normally.*${gdb_prompt} $" { > + -re "Inferior \[0-9\]+ exited normally.*${gdb_prompt} $" { > fail "$test (program exited)" > set program_exited 1 > } > @@ -170,7 +170,7 @@ proc advancei { i } { > send_gdb "y\n" > exp_continue -continue_timer > } > - -re "Program exited normally.*${gdb_prompt} $" { > + -re "Inferior \[0-9\]+ exited normally.*${gdb_prompt} $" { > kfail gdb/1639 "$test (program exited)" > set program_exited 1 > } > diff --git a/gdb/testsuite/gdb.base/step-test.exp b/gdb/testsuite/gdb.base/step-test.exp > index 1c48812..6432e51 100644 > --- a/gdb/testsuite/gdb.base/step-test.exp > +++ b/gdb/testsuite/gdb.base/step-test.exp > @@ -150,7 +150,7 @@ gdb_test_multiple "finish" "$test" { > -re ".*${decimal}.*callee.*NEXTI.*$gdb_prompt $" { > pass "$test" > } > - -re ".*(Program received|Program exited).*$gdb_prompt $" { > + -re ".*(Program received|Inferior exited).*$gdb_prompt $" { > # Oops... We ran to the end of the program... Better reset > if {![runto_main]} then { > fail "$test (Can't run to main)" > diff --git a/gdb/testsuite/gdb.base/term.exp b/gdb/testsuite/gdb.base/term.exp > index 049a88b..aca1f58 100644 > --- a/gdb/testsuite/gdb.base/term.exp > +++ b/gdb/testsuite/gdb.base/term.exp > @@ -47,7 +47,7 @@ gdb_test_no_output "set width 0" > gdb_test "info terminal" "No saved terminal information.*" "test info terminal" > gdb_run_cmd 5 > gdb_expect { > - -re ".*120.*Program exited normally.*$gdb_prompt $" { > + -re ".*120.*Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > gdb_test "info terminal" "No saved terminal information.*" "test info terminal #2" > } > default { > diff --git a/gdb/testsuite/gdb.cell/fork.exp b/gdb/testsuite/gdb.cell/fork.exp > index 3fdfc25..b3d40d5 100644 > --- a/gdb/testsuite/gdb.cell/fork.exp > +++ b/gdb/testsuite/gdb.cell/fork.exp > @@ -77,8 +77,7 @@ gdb_test_no_output "delete \$bpnum" "delete watchpoint" > gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, func \\(\\) at .*$spu_file.c:.*" \ > "run until breakpoint hit" > > -gdb_test "continue" "Continuing\\..*Program exited normally.*" \ > - "run until end" > +gdb_continue_off_end > > gdb_exit > > diff --git a/gdb/testsuite/gdb.cp/annota2.exp b/gdb/testsuite/gdb.cp/annota2.exp > index a48e2ea..390ff35 100644 > --- a/gdb/testsuite/gdb.cp/annota2.exp > +++ b/gdb/testsuite/gdb.cp/annota2.exp > @@ -116,7 +116,7 @@ gdb_test_multiple "print a" "print class" { > # `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\r\nProgram exited 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 \[0-9\]+ exited normally.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" { > pass "continue until exit" > } > } > diff --git a/gdb/testsuite/gdb.cp/annota3.exp b/gdb/testsuite/gdb.cp/annota3.exp > index 17021fb..2744d17 100644 > --- a/gdb/testsuite/gdb.cp/annota3.exp > +++ b/gdb/testsuite/gdb.cp/annota3.exp > @@ -122,8 +122,7 @@ gdb_expect_list "continue to exit" "$gdb_prompt$" { > "\r\n\032\032starting\r\n" > "a.x is 1\r\n" > "\r\n\032\032exited 0\r\n" > - "\r\n" > - "Program exited normally.\r\n" > + ".Inferior \[0-9\]+ exited normally.\r\n" > "\r\n\032\032stopped\r\n" > } > > diff --git a/gdb/testsuite/gdb.cp/mb-inline.exp b/gdb/testsuite/gdb.cp/mb-inline.exp > index 46d7cc2..bd8ea63 100644 > --- a/gdb/testsuite/gdb.cp/mb-inline.exp > +++ b/gdb/testsuite/gdb.cp/mb-inline.exp > @@ -101,9 +101,7 @@ gdb_expect { > } > } > > -gdb_test "continue" \ > - ".*Program exited normally.*" \ > - "continue with disabled breakpoint 1.2" > +gdb_continue_off_end "continue" "continue with disabled breakpoint 1.2" > > # Make sure we can set a breakpoint on a source statement that spans > # multiple lines. > diff --git a/gdb/testsuite/gdb.cp/mb-templates.exp b/gdb/testsuite/gdb.cp/mb-templates.exp > index 2f8f091..779918e 100644 > --- a/gdb/testsuite/gdb.cp/mb-templates.exp > +++ b/gdb/testsuite/gdb.cp/mb-templates.exp > @@ -129,7 +129,7 @@ gdb_test_no_output "disable 1" "disable breakpoint: disable" > > gdb_run_cmd > gdb_expect { > - -re "Program exited normally.*$gdb_prompt $" { > + -re "Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > pass "disable breakpoint: run to breakpoint" > } > -re "$gdb_prompt $" { > diff --git a/gdb/testsuite/gdb.cp/method.exp b/gdb/testsuite/gdb.cp/method.exp > index 848a06d..ec000c7 100644 > --- a/gdb/testsuite/gdb.cp/method.exp > +++ b/gdb/testsuite/gdb.cp/method.exp > @@ -175,10 +175,10 @@ gdb_test_multiple "ptype A" "ptype A" { > } > > gdb_test_multiple "cont" "finish program" { > - -re "Continuing.\r\n\r\nProgram exited normally.*$gdb_prompt $" { > + -re "Continuing.\r\nInferior \[0-9\]+ exited normally.*$gdb_prompt $" { > pass "finish program" > } > - -re "Continuing.* EXIT code 0.*Program exited normally.*$gdb_prompt $" { > + -re "Continuing.* EXIT code 0.*Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > pass "finish program (exit wrapper)" > } > } > diff --git a/gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp b/gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp > index 497f7de..6be6d44 100644 > --- a/gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp > +++ b/gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp > @@ -132,7 +132,7 @@ gdb_expect { > -re ".*solib-d1.*$gdb_prompt $" { > pass "Catch implicit load at startup" > } > - -re "Program exited.*$gdb_prompt $" { > + -re "Inferior \[0-9\]+ exited.*$gdb_prompt $" { > fail "CLLbs14756 || CLLbs16090 came back ???" > } > timeout { fail "(timeout) implicit library load" } > @@ -228,7 +228,7 @@ gdb_expect { > -re "Stopped due to shared library event.*$gdb_prompt $" { > pass "stop for shlib event" > } > - -re "Program exited.*$gdb_prompt $" { > + -re "Inferior \[0-9\]+ exited.*$gdb_prompt $" { > fail "Bug CLLbs16090 came back ?" > } > timeout { fail "(timeout) stop for shlib event " } > diff --git a/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp b/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp > index f743825..566ae26 100644 > --- a/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp > +++ b/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp > @@ -130,10 +130,10 @@ for {set filenum 0} {$filenum < 2} {incr filenum 1} { > gdb_test "s 1" ".*25.*" > if [istarget "hppa64-*-*"] { > gdb_test "s 1" "0x\[0-9a-f\]+ in .*" > - gdb_test "c" ".*Program exited normally.*" > + gdb_continue_off_end > } else { > gdb_test "s 1" "0x\[0-9a-f\]+ in _start .*" > - gdb_test "s 1" ".*Program exited normally.*" > + gdb_continue_off_end "s 1" > } > } > > diff --git a/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp b/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp > index c336498..4c197f5 100644 > --- a/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp > +++ b/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp > @@ -78,9 +78,9 @@ gdb_test "s 1" "main .*/x1.cc:15.*" > gdb_test "s 1" ".*16.*" > if [istarget "hppa64-*-*"] { > gdb_test "s 1" "0x\[0-9a-f\]+ in .*START.*" > - gdb_test "c" ".*Program exited normally.*" > + gdb_continue_off_end > } else { > gdb_test "s 1" "0x\[0-9a-f\]+ in _start .*" > - gdb_test "s 1" ".*Program exited normally.*" > + gdb_continue_off_end "s 1" > } > > diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp > index 81de5a2..89c8791 100644 > --- a/gdb/testsuite/gdb.python/py-prettyprint.exp > +++ b/gdb/testsuite/gdb.python/py-prettyprint.exp > @@ -105,7 +105,7 @@ proc run_lang_tests {lang} { > gdb_test "print nstype" " = {.0. = 7, .1. = 42}" \ > "print nstype on one line" > > - gdb_test "continue" "Program exited normally\." > + gdb_continue_off_end > > remote_file host delete ${remote_python_file} > } > diff --git a/gdb/testsuite/gdb.threads/execl.exp b/gdb/testsuite/gdb.threads/execl.exp > index 863c7cf..c2322ac 100644 > --- a/gdb/testsuite/gdb.threads/execl.exp > +++ b/gdb/testsuite/gdb.threads/execl.exp > @@ -71,5 +71,4 @@ gdb_test_multiple "info threads" "$test" { > } > } > > -gdb_test "continue" ".*Program exited normally\\." \ > - "continue to end" > +gdb_continue_off_end > diff --git a/gdb/testsuite/gdb.threads/interrupted-hand-call.exp b/gdb/testsuite/gdb.threads/interrupted-hand-call.exp > index cb0bc3d..e41326b 100644 > --- a/gdb/testsuite/gdb.threads/interrupted-hand-call.exp > +++ b/gdb/testsuite/gdb.threads/interrupted-hand-call.exp > @@ -86,7 +86,6 @@ gdb_test_multiple "maint print dummy-frames" "dummy frame popped" { > > # Continue one last time, the program should exit normally. > > -gdb_test "continue" "Program exited normally." \ > - "continue to program exit" > +gdb_continue_off_end > > return 0 > diff --git a/gdb/testsuite/gdb.threads/print-threads.exp b/gdb/testsuite/gdb.threads/print-threads.exp > index d221fbd..c715cc7 100644 > --- a/gdb/testsuite/gdb.threads/print-threads.exp > +++ b/gdb/testsuite/gdb.threads/print-threads.exp > @@ -80,7 +80,7 @@ proc test_all_threads { name kill } { > send_gdb "continue\n" > exp_continue > } > - -re "Program exited normally\\.\[\r\n\]+$gdb_prompt" { > + -re "Inferior \[0-9\]+ exited normally.\[\r\n\]+$gdb_prompt" { > pass "program exited normally" > if {$i == 5} { > pass "all threads ran once ($name)" > diff --git a/gdb/testsuite/gdb.threads/step.exp b/gdb/testsuite/gdb.threads/step.exp > index c051196..20a4def 100644 > --- a/gdb/testsuite/gdb.threads/step.exp > +++ b/gdb/testsuite/gdb.threads/step.exp > @@ -62,7 +62,7 @@ proc step_it { cmd } { > gdb_expect { > -re "0x\[0-9A-Fa-f\]* *in.*\r\n$gdb_prompt $" { pass "step_it"; return 0 } > -re "0x\[0-9A-Fa-f\]* *\[0-9\]*.*\r\n$gdb_prompt $" { pass "step_it"; return 1 } > - -re "Program exited .*\n$gdb_prompt $" { > + -re "Inferior \[0-9\]+ exited .*\n$gdb_prompt $" { > set program_exited 1 > return -1 > } > @@ -88,7 +88,7 @@ proc continue_all {} { > pass "continue_all" > return 0 > } > - -re "Program exited .*\n$gdb_prompt $" { > + -re "Inferior \[0-9\]+ exited .*\n$gdb_prompt $" { > set program_exited 1 > return 1; > } > diff --git a/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp b/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp > index 6faabf5..232258e 100644 > --- a/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp > +++ b/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp > @@ -110,7 +110,6 @@ gdb_test_multiple "maint print dummy-frames" "dummy frame popped" { > > # Continue one last time, the program should exit normally. > > -gdb_test "continue" "Program exited normally." \ > - "continue to program exit" > +gdb_continue_off_end > > return 0 > diff --git a/gdb/testsuite/gdb.threads/tls.exp b/gdb/testsuite/gdb.threads/tls.exp > index 0e63120..ff294ff 100644 > --- a/gdb/testsuite/gdb.threads/tls.exp > +++ b/gdb/testsuite/gdb.threads/tls.exp > @@ -177,7 +177,7 @@ gdb_expect { > unsupported "continue to first thread: system does not support TLS" > return -1 > } > - -re ".*Program exited normally.*$gdb_prompt $" { > + -re ".*Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > fail "continue to first thread: program runaway" > } > -re ".*Pass 0 done.*Pass 1 done.*$gdb_prompt $" { > diff --git a/gdb/testsuite/lib/cell.exp b/gdb/testsuite/lib/cell.exp > index 4cc7ee0..86f77b2 100644 > --- a/gdb/testsuite/lib/cell.exp > +++ b/gdb/testsuite/lib/cell.exp > @@ -136,11 +136,11 @@ proc skip_cell_tests {} { > gdb_load "$exe" > gdb_run_cmd > gdb_expect { > - -re ".*Program exited normally.*${gdb_prompt} $" { > + -re ".*Inferior \[0-9\]+ exited normally.*${gdb_prompt} $" { > verbose -log "\n$me: Cell/B.E. hardware detected" > set skip_cell_tests_saved 0 > } > - -re ".*Program exited with code.*${gdb_prompt} $" { > + -re ".*Inferior \[0-9\]+ exited with code.*${gdb_prompt} $" { > verbose -log "\n$me: Cell/B.E. hardware not detected" > set skip_cell_tests_saved 1 > } > diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp > index 44d449a..91ddad5 100644 > --- a/gdb/testsuite/lib/gdb.exp > +++ b/gdb/testsuite/lib/gdb.exp > @@ -572,7 +572,7 @@ proc gdb_internal_error_resync {} { > # } > # } > # > -# The standard patterns, such as "Program exited..." and "A problem > +# The standard patterns, such as "Inferior exited..." and "A problem > # ...", all being implicitly appended to that list. > # > proc gdb_test_multiple { command message user_code } { > @@ -755,7 +755,7 @@ proc gdb_test_multiple { command message user_code } { > fail "$message" > set result 1 > } > - -re "Program exited with code \[0-9\]+.*$gdb_prompt $" { > + -re "Inferior \[0-9\]+ exited with code \[0-9\]+.*$gdb_prompt $" { > if ![string match "" $message] then { > set errmsg "$message (the program exited)" > } else { > @@ -764,7 +764,7 @@ proc gdb_test_multiple { command message user_code } { > fail "$errmsg" > set result -1 > } > - -re "Program exited normally.*$gdb_prompt $" { > + -re "Inferior \[0-9\]+ exited normally.*$gdb_prompt $" { > if ![string match "" $message] then { > set errmsg "$message (the program exited)" > } else { > @@ -1640,7 +1640,7 @@ proc skip_altivec_tests {} { > verbose -log "\n$me altivec hardware not detected" > set skip_vmx_tests_saved 1 > } > - -re ".*Program exited normally.*${gdb_prompt} $" { > + -re ".*Inferior \[0-9\]+ exited normally.*${gdb_prompt} $" { > verbose -log "\n$me: altivec hardware detected" > set skip_vmx_tests_saved 0 > } > @@ -1727,7 +1727,7 @@ proc skip_vsx_tests {} { > verbose -log "\n$me VSX hardware not detected" > set skip_vsx_tests_saved 1 > } > - -re ".*Program exited normally.*${gdb_prompt} $" { > + -re ".*Inferior \[0-9\]+ exited normally.*${gdb_prompt} $" { > verbose -log "\n$me: VSX hardware detected" > set skip_vsx_tests_saved 0 > } > @@ -3069,11 +3069,18 @@ proc gdb_continue_to_end {mssg} { > # 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\]+|Program exited normally\\.).*"\ > + "Continuing.\[\r\n0-9\]+(... EXIT code 0\[\r\n\]+|Inferior \[0-9\]+ exited normally).*"\ > "continue until exit at $mssg" > } > } > > +# Invoke COMMAND, by default "continue", and expect GDB to exit > +# normally. TESTNAME is an optional test name. > +proc gdb_continue_off_end {{command continue} > + {testname "continue to program exit"}} { > + gdb_test $command "Inferior \[0-9\]+ exited normally." $testname > +} > + > proc rerun_to_main {} { > global gdb_prompt > > diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp > index 6b25f69..8d30a9f 100644 > --- a/gdb/testsuite/lib/mi-support.exp > +++ b/gdb/testsuite/lib/mi-support.exp > @@ -698,7 +698,7 @@ proc mi_gdb_test { args } { > fail "$message" > set result 1 > } > - -re "Program exited with code \[0-9\]+.*$mi_gdb_prompt\[ \]*$" { > + -re "Inferior \[0-9\]+ exited with code \[0-9\]+.*$mi_gdb_prompt\[ \]*$" { > if ![string match "" $message] then { > set errmsg "$message (the program exited)" > } else { > diff --git a/gdb/testsuite/lib/opencl.exp b/gdb/testsuite/lib/opencl.exp > index c1b5291..b722ba3 100644 > --- a/gdb/testsuite/lib/opencl.exp > +++ b/gdb/testsuite/lib/opencl.exp > @@ -59,11 +59,11 @@ proc skip_opencl_tests {} { > clean_restart "$executable" > gdb_run_cmd > gdb_expect 30 { > - -re ".*Program exited normally.*${gdb_prompt} $" { > + -re ".*Inferior \[0-9\]+ exited normally.*${gdb_prompt} $" { > verbose -log "\n$me: OpenCL support detected" > set skip_opencl_tests_saved($board) 0 > } > - -re ".*Program exited with code.*${gdb_prompt} $" { > + -re ".*Inferior \[0-9\]+ exited code.*${gdb_prompt} $" { > verbose -log "\n$me: OpenCL support not detected" > set skip_opencl_tests_saved($board) 1 > }