This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RFC: change "program exited" message


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]

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  <tromey@redhat.com>

	* infrun.c (print_exited_reason): Include inferior PID in
	message.

2011-03-03  Tom Tromey  <tromey@redhat.com>

	* 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 <number>" {
@@ -57,19 +57,19 @@ if [istarget "*-*-vxworks*"] then {
     gdb_expect -re "$gdb_prompt $" {}
 } else {
     gdb_expect {
-	-re ".*usage:  factorial <number>.*Program exited with code 01\.\r\n$gdb_prompt $" {
+	-re ".*usage:  factorial <number>.*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 <number>.*Program exited with code 01.*$gdb_prompt $" {
+	-re ".*usage:  factorial <number>.*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 <number>.* EXIT code 1.*Program exited normally\.\r\n$gdb_prompt $" {
+	-re ".*usage:  factorial <number>.* 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 <number>.* EXIT code 1.*Program exited normally.*$gdb_prompt $" {
+	-re ".*usage:  factorial <number>.* 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 <number>" {
@@ -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
         }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]