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]

Re: RFC: change "program exited" message


Pedro> I suggest, modelled on how we print threads:
Pedro> "[Inferior " + inferior->num + "(" target_pid_to_string (pid_to_ptid (inf->pid)) + ")" + $whathappened + "]"

Looks good to me.

Here's the patch.  This time I introduced a new variable in the test
suite, so that further changes to the format are less difficult to
implement.

Built and regtested on x86-64 (compile farm).

Tom

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

	* infrun.c (print_exited_reason): Include inferior id and pid in
	message.

2011-03-04  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..ba40c6c 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -5488,22 +5488,33 @@ print_signal_exited_reason (enum target_signal siggnal)
 static void
 print_exited_reason (int exitstatus)
 {
+  struct inferior *inf = current_inferior ();
+  const char *pidstr = target_pid_to_str (pid_to_ptid (inf->pid));
+
   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->num));
+      ui_out_text (uiout, " (");
+      ui_out_text (uiout, pidstr);
+      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->num));
+      ui_out_text (uiout, " (");
+      ui_out_text (uiout, pidstr);
+      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..bf20b89 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_exited_re 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..cb1e6fd 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_exited_re 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_exited_re 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_exited_re 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_exited_re 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_exited_re 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_exited_re 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_exited_re 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_exited_re 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_exited_re 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..9326311 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_exited_re 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..fe79cae 100644
--- a/gdb/testsuite/gdb.base/break-interp.exp
+++ b/gdb/testsuite/gdb.base/break-interp.exp
@@ -365,7 +365,7 @@ proc test_attach {file displacement {relink_args ""}} {
 }
 
 proc test_ld {file ifmain trynosym displacement} {
-    global srcdir subdir gdb_prompt expect_out
+    global srcdir subdir gdb_prompt expect_out inferior_exited_re
 
     # First test normal `file'-command loaded $FILE with symbols.
 
@@ -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_exited_re (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..c3b2008 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_exited_re normally.*Switching to.*" \
     "Exit, dropped into next fork one"
 
 gdb_test "continue" \
-    "Deleting copy.*Program exited normally.*Switching to.*" \
+    "Deleting copy.*$inferior_exited_re normally.*Switching to.*" \
     "Exit, dropped into next fork two"
 
 gdb_test "continue" \
-    "Deleting copy.*Program exited normally.*Switching to.*" \
+    "Deleting copy.*$inferior_exited_re normally.*Switching to.*" \
     "Exit, dropped into next fork three"
 
 gdb_test "continue" \
-    "Deleting copy.*Program exited normally.*Switching to.*" \
+    "Deleting copy.*$inferior_exited_re normally.*Switching to.*" \
     "Exit, dropped into next fork four"
 
 gdb_test "continue" \
-    "Deleting copy.*Program exited normally.*Switching to.*" \
+    "Deleting copy.*$inferior_exited_re 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..9478d0c 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_exited_re 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..9d1134d 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_exited_re 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_exited_re 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_exited_re 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_exited_re.*$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..ed6b073 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\n$inferior_exited_re 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..4562199 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_exited_re 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..602c63b 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_exited_re 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..d43cf0a 100644
--- a/gdb/testsuite/gdb.base/sigstep.exp
+++ b/gdb/testsuite/gdb.base/sigstep.exp
@@ -68,7 +68,7 @@ gdb_test_sequence "bt" "backtrace for nexti" {
 }
 
 proc advance { i } {
-    global gdb_prompt
+    global gdb_prompt inferior_exited_re
     set prefix "$i from handler"
 
     # Get us back into the handler
@@ -88,7 +88,7 @@ proc advance { i } {
 	    send_gdb "$i\n"
 	    exp_continue -continue_timer
 	}
-	-re "Program exited normally.*${gdb_prompt} $" {
+	-re "$inferior_exited_re normally.*${gdb_prompt} $" {
 	    setup_kfail gdb/1639 powerpc-*-*bsd*
 	    fail "$test (program exited)"
 	}
@@ -105,7 +105,7 @@ proc advance { i } {
 }
 
 proc advancei { i } {
-    global gdb_prompt
+    global gdb_prompt inferior_exited_re
     set prefix "$i from handleri"
     set program_exited 0
 
@@ -144,7 +144,7 @@ proc advancei { i } {
 	-re "main .*${gdb_prompt} $" {
 	    fail "$test (in main)"
 	}
-	-re "Program exited normally.*${gdb_prompt} $" {
+	-re "$inferior_exited_re 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_exited_re 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..24116d6 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_re).*$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..d4d1d83 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_exited_re 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..4092a43 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_exited_re 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..a2b5d22 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_exited_re 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..80c080b 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_exited_re 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..fff718d 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\n$inferior_exited_re normally.*$gdb_prompt $" {
 	pass "finish program"
     }
-    -re "Continuing.* EXIT code 0.*Program exited normally.*$gdb_prompt $" {
+    -re "Continuing.* EXIT code 0.*$inferior_exited_re 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..6cf42ef 100644
--- a/gdb/testsuite/gdb.threads/print-threads.exp
+++ b/gdb/testsuite/gdb.threads/print-threads.exp
@@ -59,7 +59,7 @@ if ![istarget "*-*-ultrix*"] then {
 }
 
 proc test_all_threads { name kill } {
-    global gdb_prompt
+    global gdb_prompt inferior_exited_re
 
     set i 0
     set j 0
@@ -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_exited_re 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..36c0403 100644
--- a/gdb/testsuite/gdb.threads/step.exp
+++ b/gdb/testsuite/gdb.threads/step.exp
@@ -57,12 +57,13 @@ proc set_bp { where } {
 proc step_it { cmd } {
     global gdb_prompt
     global program_exited
+    global inferior_exited_re
 
     send_gdb "$cmd\n"
     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_exited_re .*\n$gdb_prompt $" {
 		set program_exited 1
 		return -1
 	    }
@@ -81,6 +82,7 @@ proc step_source {} {
 
 proc continue_all {} {
     global gdb_prompt
+    global inferior_exited_re
 
     send_gdb "continue\n"
     gdb_expect {
@@ -88,7 +90,7 @@ proc continue_all {} {
 	    pass "continue_all"
 	    return 0
 	}
-	-re "Program exited .*\n$gdb_prompt $" {
+	-re "$inferior_exited_re .*\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..d7dce0db 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_exited_re 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..75ac210 100644
--- a/gdb/testsuite/lib/cell.exp
+++ b/gdb/testsuite/lib/cell.exp
@@ -72,7 +72,7 @@ proc gdb_cell_embedspu {source dest options} {
 # Return 0 if so, 1 if it does not.
 proc skip_cell_tests {} {
     global skip_cell_tests_saved
-    global srcdir subdir gdb_prompt
+    global srcdir subdir gdb_prompt inferior_exited_re
 
     # Use the cached value, if it exists.
     set me "skip_cell_tests"
@@ -136,11 +136,11 @@ proc skip_cell_tests {} {
     gdb_load "$exe"
     gdb_run_cmd
     gdb_expect {
-        -re ".*Program exited normally.*${gdb_prompt} $" {
+        -re ".*$inferior_exited_re 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_exited_re 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..ebd38c7 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -99,6 +99,8 @@ if ![info exists env(EXEEXT)] {
 
 set octal "\[0-7\]+"
 
+set inferior_exited_re "Inferior \[0-9\]+ \\(.*\\) exited"
+
 ### Only procedures should come after this point.
 
 #
@@ -572,13 +574,14 @@ 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 } {
     global verbose
     global gdb_prompt
     global GDB
+    global inferior_exited_re
     upvar timeout timeout
     upvar expect_out expect_out
 
@@ -755,7 +758,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_exited_re with code \[0-9\]+.*$gdb_prompt $" {
 	    if ![string match "" $message] then {
 		set errmsg "$message (the program exited)"
 	    } else {
@@ -764,7 +767,7 @@ proc gdb_test_multiple { command message user_code } {
 	    fail "$errmsg"
 	    set result -1
 	}
-	 -re "Program exited normally.*$gdb_prompt $" {
+	 -re "$inferior_exited_re normally.*$gdb_prompt $" {
 	    if ![string match "" $message] then {
 		set errmsg "$message (the program exited)"
 	    } else {
@@ -1573,7 +1576,7 @@ proc is_lp64_target {} {
 
 proc skip_altivec_tests {} {
     global skip_vmx_tests_saved
-    global srcdir subdir gdb_prompt
+    global srcdir subdir gdb_prompt inferior_exited_re
 
     # Use the cached value, if it exists.
     set me "skip_altivec_tests"
@@ -1640,7 +1643,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_exited_re normally.*${gdb_prompt} $" {
             verbose -log "\n$me: altivec hardware detected" 
             set skip_vmx_tests_saved 0
         }
@@ -1661,7 +1664,7 @@ proc skip_altivec_tests {} {
 
 proc skip_vsx_tests {} {
     global skip_vsx_tests_saved
-    global srcdir subdir gdb_prompt
+    global srcdir subdir gdb_prompt inferior_exited_re
 
     # Use the cached value, if it exists.
     set me "skip_vsx_tests"
@@ -1727,7 +1730,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_exited_re normally.*${gdb_prompt} $" {
             verbose -log "\n$me: VSX hardware detected"
             set skip_vsx_tests_saved 0
         }
@@ -3058,6 +3061,7 @@ proc gdb_get_line_number { text { file "" } } {
 # mssg is the error message that gets printed.
 
 proc gdb_continue_to_end {mssg} {
+  global inferior_exited_re
   if [target_info exists use_gdb_stub] {
     if {![gdb_breakpoint "exit"]} {
       return 0
@@ -3069,11 +3073,19 @@ 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_exited_re 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"}} {
+    global inferior_exited_re
+    gdb_test $command "$inferior_exited_re 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..e75a4f5 100644
--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -575,6 +575,7 @@ proc mi_gdb_test { args } {
     global verbose
     global mi_gdb_prompt
     global GDB expect_out
+    global inferior_exited_re
     upvar timeout timeout
 
     set command [lindex $args 0]
@@ -698,7 +699,7 @@ proc mi_gdb_test { args } {
             fail "$message"
 	    set result 1
 	}
-	 -re "Program exited with code \[0-9\]+.*$mi_gdb_prompt\[ \]*$" {
+	 -re "$inferior_exited_re 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..dfd6a57 100644
--- a/gdb/testsuite/lib/opencl.exp
+++ b/gdb/testsuite/lib/opencl.exp
@@ -31,6 +31,7 @@ proc gdb_compile_opencl_hostapp {clsource executable options} {
 # it does not.
 proc skip_opencl_tests {} {
     global skip_opencl_tests_saved srcdir objdir subdir gdb_prompt
+    global inferior_exited_re
 
     # Use the cached value, if it exists.  Cache value per "board" to handle
     # runs with multiple options (e.g. unix/{-m32,-64}) correctly.
@@ -59,11 +60,11 @@ proc skip_opencl_tests {} {
     clean_restart "$executable"
     gdb_run_cmd
     gdb_expect 30 {
-        -re ".*Program exited normally.*${gdb_prompt} $" {
+        -re ".*$inferior_exited_re 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_exited_re 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]