Patchwork Fix expected received signal message in testsuite

login
register
mail settings
Submitter Rainer Orth
Date Sept. 5, 2019, 12:04 p.m.
Message ID <yddlfv3eyq1.fsf@CeBiTec.Uni-Bielefeld.DE>
Download mbox | patch
Permalink /patch/34392/
State New
Headers show

Comments

Rainer Orth - Sept. 5, 2019, 12:04 p.m.
Quite a number of tests FAIL on Solaris due to a mismatch between
expected and received messages: the testsuite expects something like

	Program received signal SIGABRT, Aborted.

while on Solaris it gets

	Thread 2 received signal SIGABRT, Aborted.

For a simple testcase, info threads shows

(gdb) info threads 
  Id   Target Id         Frame 
  1    LWP    1          main () at /vol/src/gnu/gdb/doc/bugs/ua.c:5
* 2    Thread 1 (LWP 1)  main () at /vol/src/gnu/gdb/doc/bugs/ua.c:5

I suspect this is due to support for the old pre-Solaris 9 MxN thread
model where user level threads were mapped to a different set of lwps.

For the moment, I'm dealing with this by allowing both forms of the
message in the testsuite.  The patch is almost completely mechanical,
with the exception of gdb.base/sigbpt.exp where the introduction of a
new group in the RE required adjustments in the $expect_out indices.

Tested on sparcv9-sun-solaris2.11, x86_64-pc-solaris2.11, and
x86_64-pc-linux-gnu.  Ok for master?

	Rainer
Rainer Orth - Sept. 13, 2019, 12:47 p.m.
Ping?  It's been more than a week.

> Quite a number of tests FAIL on Solaris due to a mismatch between
> expected and received messages: the testsuite expects something like
>
> 	Program received signal SIGABRT, Aborted.
>
> while on Solaris it gets
>
> 	Thread 2 received signal SIGABRT, Aborted.
>
> For a simple testcase, info threads shows
>
> (gdb) info threads 
>   Id   Target Id         Frame 
>   1    LWP    1          main () at /vol/src/gnu/gdb/doc/bugs/ua.c:5
> * 2    Thread 1 (LWP 1)  main () at /vol/src/gnu/gdb/doc/bugs/ua.c:5
>
> I suspect this is due to support for the old pre-Solaris 9 MxN thread
> model where user level threads were mapped to a different set of lwps.
>
> For the moment, I'm dealing with this by allowing both forms of the
> message in the testsuite.  The patch is almost completely mechanical,
> with the exception of gdb.base/sigbpt.exp where the introduction of a
> new group in the RE required adjustments in the $expect_out indices.
>
> Tested on sparcv9-sun-solaris2.11, x86_64-pc-solaris2.11, and
> x86_64-pc-linux-gnu.  Ok for master?
>
> 	Rainer
Andrew Burgess - Sept. 13, 2019, 10:18 p.m.
* Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> [2019-09-05 14:04:06 +0200]:

> Quite a number of tests FAIL on Solaris due to a mismatch between
> expected and received messages: the testsuite expects something like
> 
> 	Program received signal SIGABRT, Aborted.
> 
> while on Solaris it gets
> 
> 	Thread 2 received signal SIGABRT, Aborted.
> 
> For a simple testcase, info threads shows
> 
> (gdb) info threads 
>   Id   Target Id         Frame 
>   1    LWP    1          main () at /vol/src/gnu/gdb/doc/bugs/ua.c:5
> * 2    Thread 1 (LWP 1)  main () at /vol/src/gnu/gdb/doc/bugs/ua.c:5
> 
> I suspect this is due to support for the old pre-Solaris 9 MxN thread
> model where user level threads were mapped to a different set of lwps.
> 
> For the moment, I'm dealing with this by allowing both forms of the
> message in the testsuite.  The patch is almost completely mechanical,
> with the exception of gdb.base/sigbpt.exp where the introduction of a
> new group in the RE required adjustments in the $expect_out indices.

I'm a little nervous about just allowing either "Thread" or "Program"
for all tests for all targets.  Maybe others will disagree and think
I'm worrying about nothing, but I wonder if we could be more
conservative by adding a support function into lib/gdb.exp that takes
the name of a signal and returns the string we expect from GDB, which
we can then change based on Solaris/non-Solaris.

I haven't looked through the patch in enough detail to know if there's
any reason why this wouldn't work, so please push back if you think
the idea is unworkable.

Thanks,
Andrew


> 
> Tested on sparcv9-sun-solaris2.11, x86_64-pc-solaris2.11, and
> x86_64-pc-linux-gnu.  Ok for master?
> 
> 	Rainer
> 
> -- 
> -----------------------------------------------------------------------------
> Rainer Orth, Center for Biotechnology, Bielefeld University
> 
> 
> 2018-11-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
> 
> 	* gdb.arch/aarch64-sighandler-regs.exp,
> 	gdb.arch/amd64-i386-address.exp, gdb.arch/i386-gnu-cfi.exp,
> 	gdb.arch/i386-mpx-call.exp, gdb.arch/i386-mpx-sigsegv.exp,
> 	gdb.arch/i386-mpx-simple_segv.exp, gdb.arch/i386-prologue.exp,
> 	gdb.arch/i386-size-overlap.exp, gdb.arch/i386-size.exp,
> 	gdb.arch/i386-sse-stack-align.exp, gdb.arch/i386-unwind.exp,
> 	gdb.arch/powerpc-stackless.exp, gdb.arch/s390-stackless.exp,
> 	gdb.arch/s390-tdbregs.exp, gdb.arch/s390-vregs.exp,
> 	gdb.arch/sparc64-adi.exp, gdb.base/auxv.exp,
> 	gdb.base/bp-cmds-continue-ctrl-c.exp, gdb.base/bp-permanent.exp,
> 	gdb.base/call-signal-resume.exp, gdb.base/ending-run.exp,
> 	gdb.base/exitsignal.exp, gdb.base/interrupt-noterm.exp,
> 	gdb.base/interrupt.exp, gdb.base/jit-reader.exp,
> 	gdb.base/kill-after-signal.exp, gdb.base/random-signal.exp,
> 	gdb.base/range-stepping.exp, gdb.base/relativedebug.exp,
> 	gdb.base/sigall.exp, gdb.base/sigbpt.exp,
> 	gdb.base/siginfo-addr.exp, gdb.base/siginfo-infcall.exp,
> 	gdb.base/siginfo-obj.exp, gdb.base/signest.exp,
> 	gdb.base/signull.exp, gdb.base/sigstep.exp, gdb.btrace/segv.exp,
> 	gdb.reverse/sigall-precsave.exp, gdb.reverse/sigall-reverse.exp,
> 	gdb.server/reconnect-ctrl-c.exp, gdb.server/solib-list.exp,
> 	gdb.trace/trace-condition.exp: Allow for Thread N received signal
> 	message.
> 	* gdb.base/sigbpt.exp: Adjust $expect_out indices.
> 

> # HG changeset patch
> # Parent  83e8741eb69e875b4745b17494480e4271f0df40
> Fix expected received signal message in testsuite
> 
> diff --git a/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp b/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp
> --- a/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp
> +++ b/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp
> @@ -88,7 +88,7 @@ proc check_regs {regtype regnums value p
>  # Run until end of signal handler
>  
>  gdb_test "continue" \
> -    "Continuing.*Program received signal SIGILL.*" \
> +    "Continuing.*(Program|Thread .*) received signal SIGILL.*" \
>      "continue until signal"
>  
>  gdb_breakpoint [gdb_get_line_number "exit(0)"]
> diff --git a/gdb/testsuite/gdb.arch/amd64-i386-address.exp b/gdb/testsuite/gdb.arch/amd64-i386-address.exp
> --- a/gdb/testsuite/gdb.arch/amd64-i386-address.exp
> +++ b/gdb/testsuite/gdb.arch/amd64-i386-address.exp
> @@ -32,7 +32,7 @@ gdb_run_cmd
>  
>  set test "trap stop"
>  gdb_test_multiple "" $test {
> -    -re "Program received signal SIGTRAP,.*_start .*$gdb_prompt $" {
> +    -re "(Program|Thread .*) received signal SIGTRAP,.*_start .*$gdb_prompt $" {
>  	pass $test
>      }
>  }
> diff --git a/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp b/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
> --- a/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
> +++ b/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
> @@ -53,7 +53,7 @@ gdb_load ${binfile}
>  gdb_run_cmd
>  
>  gdb_test_multiple {} "continue to abort()" {
> -    -re ".*Program received signal SIGABRT,.*$gdb_prompt $" {
> +    -re ".*(Program|Thread .*) received signal SIGABRT,.*$gdb_prompt $" {
>  	pass "continue to abort()"
>      }
>  }
> diff --git a/gdb/testsuite/gdb.arch/i386-mpx-call.exp b/gdb/testsuite/gdb.arch/i386-mpx-call.exp
> --- a/gdb/testsuite/gdb.arch/i386-mpx-call.exp
> +++ b/gdb/testsuite/gdb.arch/i386-mpx-call.exp
> @@ -57,7 +57,7 @@ set bndcfg_reg " = \\\{raw = $hex, confi
>                 preserved = $hex, enabled = $hex\\\}\\\}"
>  set bndstatus_reg  " = \\\{raw = $hex, status = \\\{bde = $hex,\
>                      error = $hex\\\}\\\}"
> -set u_fault [multi_line "Program received signal SIGSEGV, Segmentation fault" \
> +set u_fault [multi_line "(Program|Thread .*) received signal SIGSEGV, Segmentation fault" \
>                          "Upper bound violation while accessing address $hex" \
>                          "Bounds: \\\[lower = $hex, upper = $hex\\\]"]
>  
> diff --git a/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp b/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp
> --- a/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp
> +++ b/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp
> @@ -45,11 +45,11 @@ gdb_test_multiple "print have_mpx ()" "h
>      }
>  }
>  
> -set u_fault [multi_line "Program received signal SIGSEGV, Segmentation fault" \
> +set u_fault [multi_line "(Program|Thread .*) received signal SIGSEGV, Segmentation fault" \
>                          "Upper bound violation while accessing address $hex" \
>                          "Bounds: \\\[lower = $hex, upper = $hex\\\]"]
>  
> -set l_fault [multi_line "Program received signal SIGSEGV, Segmentation fault" \
> +set l_fault [multi_line "(Program|Thread .*) received signal SIGSEGV, Segmentation fault" \
>                          "Lower bound violation while accessing address $hex" \
>                          "Bounds: \\\[lower = $hex, upper = $hex\\\]"]
>  
> diff --git a/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp b/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp
> --- a/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp
> +++ b/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp
> @@ -51,11 +51,11 @@ gdb_test_multiple "print have_mpx ()" "h
>      }
>  }
>  
> -set violation [multi_line "Program received signal SIGSEGV, Segmentation fault" \
> +set violation [multi_line "(Program|Thread .*) received signal SIGSEGV, Segmentation fault" \
>                            "Upper bound violation while accessing address $hex" \
>                            "Bounds: \\\[lower = $hex, upper = $hex\\\]"]
>  
> -set segv_with_exit "Program received signal SIGSEGV,\
> +set segv_with_exit "(Program|Thread .*) received signal SIGSEGV,\
>          Segmentation fault.*$inferior_exited_re.*"
>  
>  
> diff --git a/gdb/testsuite/gdb.arch/i386-prologue.exp b/gdb/testsuite/gdb.arch/i386-prologue.exp
> --- a/gdb/testsuite/gdb.arch/i386-prologue.exp
> +++ b/gdb/testsuite/gdb.arch/i386-prologue.exp
> @@ -72,7 +72,7 @@ if ![runto_main] then {
>  
>  # Testcase for standard prologue.
>  
> -gdb_test "continue" "Program received signal SIGTRAP.*" "continue to standard"
> +gdb_test "continue" "(Program|Thread .*) received signal SIGTRAP.*" "continue to standard"
>  
>  skip_breakpoint standard
>  
> @@ -99,7 +99,7 @@ gdb_test "backtrace 10" \
>  	"first backtrace in stack_align_ecx"
>  
>  gdb_test "continue" \
> -	"Program received signal SIGTRAP.*" \
> +	"(Program|Thread .*) received signal SIGTRAP.*" \
>  	"continue in stack_align_ecx"
>  
>  skip_breakpoint stack_align_ecx
> @@ -127,7 +127,7 @@ gdb_test "backtrace 10" \
>  	"first backtrace in stack_align_edx"
>  
>  gdb_test "continue" \
> -	"Program received signal SIGTRAP.*" \
> +	"(Program|Thread .*) received signal SIGTRAP.*" \
>  	"continue in stack_align_edx"
>  
>  skip_breakpoint stack_align_edx
> @@ -155,7 +155,7 @@ gdb_test "backtrace 10" \
>  	"first backtrace in stack_align_eax"
>  
>  gdb_test "continue" \
> -	"Program received signal SIGTRAP.*" \
> +	"(Program|Thread .*) received signal SIGTRAP.*" \
>  	"continue in stack_align_eax"
>  
>  skip_breakpoint stack_align_eax
> @@ -171,7 +171,7 @@ gdb_test "info frame" \
>  
>  # Testcase from symtab/1253.
>  
> -gdb_test "continue" "Program received signal SIGTRAP.*" "continue to gdb1253"
> +gdb_test "continue" "(Program|Thread .*) received signal SIGTRAP.*" "continue to gdb1253"
>  
>  skip_breakpoint gdb1253
>  
> @@ -186,7 +186,7 @@ gdb_test "info frame" \
>  
>  # Testcase from backtrace/1718.
>  
> -gdb_test "continue" "Program received signal SIGTRAP.*" "continue to gdb1718"
> +gdb_test "continue" "(Program|Thread .*) received signal SIGTRAP.*" "continue to gdb1718"
>  
>  skip_breakpoint gdb1718
>  
> @@ -202,7 +202,7 @@ gdb_test "info frame" \
>  
>  # Testcase from backtrace/1338.
>  
> -gdb_test "continue" "Program received signal SIGTRAP.*" "continue to gdb1338"
> +gdb_test "continue" "(Program|Thread .*) received signal SIGTRAP.*" "continue to gdb1338"
>  
>  skip_breakpoint gdb1338
>  
> diff --git a/gdb/testsuite/gdb.arch/i386-size-overlap.exp b/gdb/testsuite/gdb.arch/i386-size-overlap.exp
> --- a/gdb/testsuite/gdb.arch/i386-size-overlap.exp
> +++ b/gdb/testsuite/gdb.arch/i386-size-overlap.exp
> @@ -41,7 +41,7 @@ gdb_load ${binfile}
>  # We use gdb_run_cmd so this stands a chance to work for remote
>  # targets too.
>  gdb_run_cmd
> -gdb_test "" "Program received signal SIGTRAP.*" "run past main"
> +gdb_test "" "(Program|Thread .*) received signal SIGTRAP.*" "run past main"
>  
>  set message "backtrace shows the outer function"
>  gdb_test_multiple "backtrace 10" $message {
> diff --git a/gdb/testsuite/gdb.arch/i386-size.exp b/gdb/testsuite/gdb.arch/i386-size.exp
> --- a/gdb/testsuite/gdb.arch/i386-size.exp
> +++ b/gdb/testsuite/gdb.arch/i386-size.exp
> @@ -46,7 +46,7 @@ gdb_load ${binfile}
>  # We use gdb_run_cmd so this stands a chance to work for remote
>  # targets too.
>  gdb_run_cmd
> -gdb_test "" "Program received signal SIGTRAP.*" "run past main"
> +gdb_test "" "(Program|Thread .*) received signal SIGTRAP.*" "run past main"
>  
>  set message "backtrace shows no function"
>  gdb_test_multiple "backtrace 10" $message {
> diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
> --- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
> +++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
> @@ -48,7 +48,7 @@ foreach i {0 1 2 3 4} {
>  	-re " = 2\r\n$gdb_prompt $" {
>  	    pass $test
>  	}
> -	-re "Program received signal SIGSEGV, Segmentation fault\\..*\r\n$gdb_prompt $" {
> +	-re "(Program|Thread .*) received signal SIGSEGV, Segmentation fault\\..*\r\n$gdb_prompt $" {
>  	    fail $test
>  	}
>      }
> diff --git a/gdb/testsuite/gdb.arch/i386-unwind.exp b/gdb/testsuite/gdb.arch/i386-unwind.exp
> --- a/gdb/testsuite/gdb.arch/i386-unwind.exp
> +++ b/gdb/testsuite/gdb.arch/i386-unwind.exp
> @@ -46,7 +46,7 @@ gdb_load ${binfile}
>  # We use gdb_run_cmd so this stands a chance to work for remote
>  # targets too.
>  gdb_run_cmd
> -gdb_test "" "Program received signal SIGTRAP.*" "run past gdb1435"
> +gdb_test "" "(Program|Thread .*) received signal SIGTRAP.*" "run past gdb1435"
>  
>  gdb_test "backtrace 10" \
>  	"#1\[ \t]*$hex in gdb1435.*\r\n#2\[ \t\]*$hex in main.*" \
> diff --git a/gdb/testsuite/gdb.arch/powerpc-stackless.exp b/gdb/testsuite/gdb.arch/powerpc-stackless.exp
> --- a/gdb/testsuite/gdb.arch/powerpc-stackless.exp
> +++ b/gdb/testsuite/gdb.arch/powerpc-stackless.exp
> @@ -31,7 +31,7 @@ gdb_run_cmd
>  
>  set test "run until SIGSEGV"
>  gdb_test_multiple "" $test {
> -    -re "Program received signal SIGSEGV.*$gdb_prompt $" {
> +    -re "(Program|Thread .*) received signal SIGSEGV.*$gdb_prompt $" {
>    pass $test
>      }
>  }
> diff --git a/gdb/testsuite/gdb.arch/s390-stackless.exp b/gdb/testsuite/gdb.arch/s390-stackless.exp
> --- a/gdb/testsuite/gdb.arch/s390-stackless.exp
> +++ b/gdb/testsuite/gdb.arch/s390-stackless.exp
> @@ -29,7 +29,7 @@ gdb_run_cmd
>  
>  set test "run until SIGSEGV"
>  gdb_test_multiple "" $test {
> -    -re "Program received signal SIGSEGV.*$gdb_prompt $" {
> +    -re "(Program|Thread .*) received signal SIGSEGV.*$gdb_prompt $" {
>  	pass $test
>      }
>  }
> diff --git a/gdb/testsuite/gdb.arch/s390-tdbregs.exp b/gdb/testsuite/gdb.arch/s390-tdbregs.exp
> --- a/gdb/testsuite/gdb.arch/s390-tdbregs.exp
> +++ b/gdb/testsuite/gdb.arch/s390-tdbregs.exp
> @@ -41,7 +41,7 @@ if ![runto_main] then {
>  }
>  
>  gdb_test_multiple "next" "check for TE support" {
> -    -re "Program received signal SIGILL,.*\r\n$gdb_prompt $" {
> +    -re "(Program|Thread .*) received signal SIGILL,.*\r\n$gdb_prompt $" {
>  	unsupported "no TE support."
>  	return
>      }
> @@ -59,7 +59,7 @@ set crashline [gdb_get_line_number "FAUL
>  gdb_test "print \$tdb0" "\\\$\[0-9\]+ = <unavailable>" "tdb0 unavailable"
>  gdb_test "print \$tr0" "\\\$\[0-9\]+ = <unavailable>" "tr0 unavailable"
>  gdb_test "next" \
> -    "Program received signal SIGSEGV, .*" \
> +    "(Program|Thread .*) received signal SIGSEGV, .*" \
>      "crash in transaction"
>  gdb_test "print/x \$tdb0" "\\\$\[0-9\]+ = 0x1.*" "tdb0 available"
>  gdb_test "set print symbol-filename" "" "set print symbol-filename"
> diff --git a/gdb/testsuite/gdb.arch/s390-vregs.exp b/gdb/testsuite/gdb.arch/s390-vregs.exp
> --- a/gdb/testsuite/gdb.arch/s390-vregs.exp
> +++ b/gdb/testsuite/gdb.arch/s390-vregs.exp
> @@ -52,7 +52,7 @@ gdb_test_multiple "x/i \$pc" "get PC at 
>  }
>  
>  gdb_test_multiple "stepi" "check for vector support" {
> -    -re "Program received signal SIGILL,.*\r\n$gdb_prompt $" {
> +    -re "(Program|Thread .*) received signal SIGILL,.*\r\n$gdb_prompt $" {
>  	unsupported "no vector support."
>  	return
>      }
> diff --git a/gdb/testsuite/gdb.arch/sparc64-adi.exp b/gdb/testsuite/gdb.arch/sparc64-adi.exp
> --- a/gdb/testsuite/gdb.arch/sparc64-adi.exp
> +++ b/gdb/testsuite/gdb.arch/sparc64-adi.exp
> @@ -48,6 +48,6 @@ gdb_test "adi x/100 shmaddr" "${hex}00:\
>           "examine new ADI"
>  gdb_test_no_output "adi a/100 shmaddr=0x0" "reset ADI"
>  gdb_test "continue" \
> -         [multi_line "Program received signal SIGSEGV, Segmentation fault.*" \
> +         [multi_line "(Program|Thread .*) received signal SIGSEGV, Segmentation fault.*" \
>                       "ADI precise mismatch while accessing address $hex.*" ] \
>  	"continue to sigsegv"
> diff --git a/gdb/testsuite/gdb.base/auxv.exp b/gdb/testsuite/gdb.base/auxv.exp
> --- a/gdb/testsuite/gdb.base/auxv.exp
> +++ b/gdb/testsuite/gdb.base/auxv.exp
> @@ -126,7 +126,7 @@ set live_data [fetch_auxv "info auxv on 
>  set gcore_works [gdb_gcore_cmd "$gcorefile" "gcore"]
>  
>  # Let the program continue and die.
> -gdb_test continue ".*Program received signal.*"
> +gdb_test continue ".*(Program|Thread .*) received signal.*"
>  gdb_test continue ".*Program terminated with signal.*"
>  
>  # Now collect the core dump it left.
> diff --git a/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp b/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
> --- a/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
> +++ b/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
> @@ -84,7 +84,7 @@ proc do_test {} {
>  		fail "$test (SIGALRM)"
>  		return
>  	    }
> -	    -re "Program received signal SIGINT.*\r\n$gdb_prompt $" {
> +	    -re "(Program|Thread .*) received signal SIGINT.*\r\n$gdb_prompt $" {
>  		send_log "$internal_pass (SIGINT)\n"
>  	    }
>  	    -re "Quit\r\n$gdb_prompt $" {
> diff --git a/gdb/testsuite/gdb.base/bp-permanent.exp b/gdb/testsuite/gdb.base/bp-permanent.exp
> --- a/gdb/testsuite/gdb.base/bp-permanent.exp
> +++ b/gdb/testsuite/gdb.base/bp-permanent.exp
> @@ -134,7 +134,7 @@ proc test {always_inserted sw_watchpoint
>  	        unsupported "failed to stop at permanent breakpoint"
>  		return
>  	    }
> -	    -re "Program received signal SIGTRAP.*$gdb_prompt $" {
> +	    -re "(Program|Thread .*) received signal SIGTRAP.*$gdb_prompt $" {
>  	    	pass $test
>  	    }
>  	}
> @@ -174,7 +174,7 @@ proc test {always_inserted sw_watchpoint
>  	# disabled, it should act as if we hadn't created it in the first
>  	# place.  IOW, we should get a random signal, and, the breakpoint's
>  	# command should not run.
> -	gdb_test "continue" "Program received signal SIGTRAP.*" \
> +	gdb_test "continue" "(Program|Thread .*) received signal SIGTRAP.*" \
>  	    "disabled permanent breakpoint doesn't explain stop"
>  
>  	gdb_test "info breakpoints" \
> @@ -257,7 +257,7 @@ proc test {always_inserted sw_watchpoint
>  
>  		set test "single-step to handler"
>  		gdb_test_multiple "stepi" $test {
> -		    -re "Program received signal SIGTRAP.*$gdb_prompt $" {
> +		    -re "(Program|Thread .*) received signal SIGTRAP.*$gdb_prompt $" {
>  			fail $test
>  		    }
>  		    -re "handler .*$gdb_prompt $" {
> diff --git a/gdb/testsuite/gdb.base/call-signal-resume.exp b/gdb/testsuite/gdb.base/call-signal-resume.exp
> --- a/gdb/testsuite/gdb.base/call-signal-resume.exp
> +++ b/gdb/testsuite/gdb.base/call-signal-resume.exp
> @@ -105,7 +105,7 @@ gdb_test "continue" "Breakpoint \[0-9\]*
>  
>  # Continue again, we should get a signal.
>  
> -gdb_test "continue" "Program received signal .*" \
> +gdb_test "continue" "(Program|Thread .*) received signal .*" \
>      "continue to receipt of signal"
>  
>  # Hand call another function that prematurely stops,
> diff --git a/gdb/testsuite/gdb.base/ending-run.exp b/gdb/testsuite/gdb.base/ending-run.exp
> --- a/gdb/testsuite/gdb.base/ending-run.exp
> +++ b/gdb/testsuite/gdb.base/ending-run.exp
> @@ -199,7 +199,7 @@ gdb_test_multiple "next" "step out of ma
>      -re "_*start\[0-9\]* \\(\[^)\]*\\).*$gdb_prompt $" {
>          pass "step out of main"
>      }
> -    -re ".*Program received signal SIGTRAP.*$gdb_prompt $" {
> +    -re ".*(Program|Thread .*) received signal SIGTRAP.*$gdb_prompt $" {
>          pass "step out of main"
>      }
>      -re ".*in.*__uClibc_main.*$gdb_prompt $" {
> diff --git a/gdb/testsuite/gdb.base/exitsignal.exp b/gdb/testsuite/gdb.base/exitsignal.exp
> --- a/gdb/testsuite/gdb.base/exitsignal.exp
> +++ b/gdb/testsuite/gdb.base/exitsignal.exp
> @@ -47,7 +47,7 @@ gdb_test "print \$_exitcode" " = void" \
>      "\$_exitcode is void before running"
>  
>  # Trigger SIGSEGV.
> -gdb_test "continue" "Program received signal SIGSEGV.*" "trigger SIGSEGV"
> +gdb_test "continue" "(Program|Thread .*) received signal SIGSEGV.*" "trigger SIGSEGV"
>  
>  # Continue until the end.
>  gdb_test "continue" "Program terminated with signal SIGSEGV.*" \
> diff --git a/gdb/testsuite/gdb.base/interrupt-noterm.exp b/gdb/testsuite/gdb.base/interrupt-noterm.exp
> --- a/gdb/testsuite/gdb.base/interrupt-noterm.exp
> +++ b/gdb/testsuite/gdb.base/interrupt-noterm.exp
> @@ -67,7 +67,7 @@ gdb_test_multiple $test $test {
>  
>  set test "inferior received SIGINT"
>  gdb_test_multiple "" $test {
> -    -re "\r\nProgram received signal SIGINT.*" {
> +    -re "\r\n(Program|Thread .*) received signal SIGINT.*" {
>  	# This appears after the prompt, which was already consumed
>  	# above.
>  	pass $test
> diff --git a/gdb/testsuite/gdb.base/interrupt.exp b/gdb/testsuite/gdb.base/interrupt.exp
> --- a/gdb/testsuite/gdb.base/interrupt.exp
> +++ b/gdb/testsuite/gdb.base/interrupt.exp
> @@ -82,7 +82,7 @@ if ![file exists $binfile] then {
>  	send_gdb "\003"
>  	set msg "send_gdb control C"
>  	gdb_test_multiple "" $msg {
> -	    -re "Program received signal SIGINT.*$gdb_prompt $" {
> +	    -re "(Program|Thread .*) received signal SIGINT.*$gdb_prompt $" {
>  		pass $msg
>  	    }
>  	}
> @@ -93,7 +93,7 @@ if ![file exists $binfile] then {
>  	    -re " = 4.*$gdb_prompt $" {
>  		pass $msg
>  	    }
> -	    -re ".*Program received signal SIG(SEGV|ILL).*$gdb_prompt $" {
> +	    -re ".*(Program|Thread .*) received signal SIG(SEGV|ILL).*$gdb_prompt $" {
>  		setup_xfail "i*86-pc-linux*-gnu*"
>  		fail "child died when we called func1, skipped rest of tests"
>  		return
> @@ -166,7 +166,7 @@ if ![file exists $binfile] then {
>  	    set msg "Send Control-C, second time"
>  	    send_gdb "\003"
>  	    gdb_test_multiple "" "$msg" {
> -		-re "Program received signal SIGINT.*$gdb_prompt $" {
> +		-re "(Program|Thread .*) received signal SIGINT.*$gdb_prompt $" {
>  		    pass "$msg"
>  		}
>  	    }
> diff --git a/gdb/testsuite/gdb.base/jit-reader.exp b/gdb/testsuite/gdb.base/jit-reader.exp
> --- a/gdb/testsuite/gdb.base/jit-reader.exp
> +++ b/gdb/testsuite/gdb.base/jit-reader.exp
> @@ -111,7 +111,7 @@ proc jit_reader_test {} {
>  
>      gdb_test_no_output "jit-reader-load ${jit_reader_bin}" "jit-reader-load"
>      gdb_run_cmd
> -    gdb_test "" "Program received signal SIGTRAP, .*" "expect SIGTRAP"
> +    gdb_test "" "(Program|Thread .*) received signal SIGTRAP, .*" "expect SIGTRAP"
>  
>      # Test the JIT reader unwinder.
>      with_test_prefix "with jit-reader" {
> diff --git a/gdb/testsuite/gdb.base/kill-after-signal.exp b/gdb/testsuite/gdb.base/kill-after-signal.exp
> --- a/gdb/testsuite/gdb.base/kill-after-signal.exp
> +++ b/gdb/testsuite/gdb.base/kill-after-signal.exp
> @@ -35,7 +35,7 @@ if ![runto_main] {
>      return -1
>  }
>  
> -gdb_test "continue" "Program received signal SIGUSR1, .*"
> +gdb_test "continue" "(Program|Thread .*) received signal SIGUSR1, .*"
>  gdb_test "stepi" "\r\nhandler .*"
>  gdb_test_multiple "kill" "kill" {
>      -re "Kill the program being debugged\\? \\(y or n\\) $" {
> diff --git a/gdb/testsuite/gdb.base/random-signal.exp b/gdb/testsuite/gdb.base/random-signal.exp
> --- a/gdb/testsuite/gdb.base/random-signal.exp
> +++ b/gdb/testsuite/gdb.base/random-signal.exp
> @@ -47,7 +47,7 @@ proc do_test {} {
>      # For this to work we must be sure to consume the "Continuing."
>      # message first, or GDB's signal handler may not be in place.
>      after 500 {send_gdb "\003"}
> -    gdb_test "" "Program received signal SIGINT.*" "stop with control-c"
> +    gdb_test "" "(Program|Thread .*) received signal SIGINT.*" "stop with control-c"
>  }
>  
>  # With native debugging and "run" (with job control), the ctrl-c
> diff --git a/gdb/testsuite/gdb.base/range-stepping.exp b/gdb/testsuite/gdb.base/range-stepping.exp
> --- a/gdb/testsuite/gdb.base/range-stepping.exp
> +++ b/gdb/testsuite/gdb.base/range-stepping.exp
> @@ -193,7 +193,7 @@ if ![target_info exists gdb,nointerrupts
>  		incr vcont_r_counter
>  		exp_continue
>  	    }
> -	    -re "Program received signal SIGINT.*$gdb_prompt $" {
> +	    -re "(Program|Thread .*) received signal SIGINT.*$gdb_prompt $" {
>  		pass $test
>  	    }
>  	}
> diff --git a/gdb/testsuite/gdb.base/relativedebug.exp b/gdb/testsuite/gdb.base/relativedebug.exp
> --- a/gdb/testsuite/gdb.base/relativedebug.exp
> +++ b/gdb/testsuite/gdb.base/relativedebug.exp
> @@ -43,7 +43,7 @@ gdb_test_multiple $test $test {
>  }
>  
>  # pause () -> SIGALRM -> handler () -> abort ()
> -gdb_test "continue" "Program received signal SIGABRT.*"
> +gdb_test "continue" "(Program|Thread .*) received signal SIGABRT.*"
>  
>  # Backtracing through pause broke if glibc has been prelinked,
>  # because the separate debug files in /usr/lib/debug had different
> diff --git a/gdb/testsuite/gdb.base/sigall.exp b/gdb/testsuite/gdb.base/sigall.exp
> --- a/gdb/testsuite/gdb.base/sigall.exp
> +++ b/gdb/testsuite/gdb.base/sigall.exp
> @@ -50,7 +50,7 @@ proc test_one_sig {nextsig} {
>  	}
>  
>  	gdb_test "continue" \
> -	    "Continuing.*Program received signal SIG$esig.*" \
> +	    "Continuing.*(Program|Thread .*) received signal SIG$esig.*" \
>  		"get signal $esig"
>      }
>  
> @@ -180,7 +180,7 @@ gdb_test "handle SIGTERM stop print" \
>      "SIGTERM\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes.*"
>  gdb_test "b handle_TERM" "Breakpoint \[0-9\]+ .*"
>  gdb_test "continue" \
> -    "Continuing.*Program received signal SIGTERM.*" \
> +    "Continuing.*(Program|Thread .*) received signal SIGTERM.*" \
>      "get signal TERM"
>  gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"
>  gdb_continue_to_end "continue to sigall exit"
> diff --git a/gdb/testsuite/gdb.base/sigbpt.exp b/gdb/testsuite/gdb.base/sigbpt.exp
> --- a/gdb/testsuite/gdb.base/sigbpt.exp
> +++ b/gdb/testsuite/gdb.base/sigbpt.exp
> @@ -76,9 +76,9 @@ gdb_test "advance bowler" "bowler.*" "ad
>  set test "stepping to fault"
>  set signame "SIGSEGV"
>  gdb_test_multiple "stepi" "$test" {
> -    -re "Program received signal (SIGBUS|SIGSEGV).*pc(\r\n| *) *=> (0x\[0-9a-f\]*).*$gdb_prompt $" {
> -	set signame $expect_out(1,string)
> -	set segv_addr $expect_out(3,string)
> +    -re "(Program|Thread .*) received signal (SIGBUS|SIGSEGV).*pc(\r\n| *) *=> (0x\[0-9a-f\]*).*$gdb_prompt $" {
> +	set signame $expect_out(2,string)
> +	set segv_addr $expect_out(4,string)
>  	pass "$test"
>      }
>      -re " .*pc(\r\n| *)=> (0x\[0-9a-f\]*).*bowler.*$gdb_prompt $" {
> @@ -171,7 +171,7 @@ proc stepi_out { name args } {
>  	    send_gdb "stepi\n"
>  	    exp_continue
>  	}
> -	-re "Program received signal SIGSEGV.*$gdb_prompt $" {
> +	-re "(Program|Thread .*) received signal SIGSEGV.*$gdb_prompt $" {
>  	    kfail gdb/8807 "$test (executed fault insn)"
>  	}
>  	-re "Breakpoint.*pc(\r\n| *)[at_segv] .*bowler.*$gdb_prompt $" {
> @@ -236,7 +236,7 @@ proc cont_out { name args } {
>  
>      # Now single step the faulted instrction at that breakpoint.
>      gdb_test "stepi" \
> -	"Program received signal ${signame}.*pc(\r\n| *)=> [at_segv] .*" \
> +	"(Program|Thread .*) received signal ${signame}.*pc(\r\n| *)=> [at_segv] .*" \
>  	"${name}; stepi fault"    
>  
>      # Clear any breakpoints
> diff --git a/gdb/testsuite/gdb.base/siginfo-addr.exp b/gdb/testsuite/gdb.base/siginfo-addr.exp
> --- a/gdb/testsuite/gdb.base/siginfo-addr.exp
> +++ b/gdb/testsuite/gdb.base/siginfo-addr.exp
> @@ -40,7 +40,7 @@ if ![runto_main] then {
>  }
>  
>  # Run to the signal.
> -gdb_test "continue" ".*Program received signal SIGSEGV.*" "continue to signal"
> +gdb_test "continue" ".*(Program|Thread .*) received signal SIGSEGV.*" "continue to signal"
>  
>  gdb_breakpoint "pass"
>  
> diff --git a/gdb/testsuite/gdb.base/siginfo-infcall.exp b/gdb/testsuite/gdb.base/siginfo-infcall.exp
> --- a/gdb/testsuite/gdb.base/siginfo-infcall.exp
> +++ b/gdb/testsuite/gdb.base/siginfo-infcall.exp
> @@ -31,7 +31,7 @@ if ![runto_main] {
>  gdb_breakpoint "pass"
>  gdb_breakpoint "fail"
>  
> -gdb_test "continue" "Program received signal SIGUSR1, .*" "continue to SIGUSR1"
> +gdb_test "continue" "(Program|Thread .*) received signal SIGUSR1, .*" "continue to SIGUSR1"
>  
>  gdb_test "p callme ()" " = 42"
>  
> diff --git a/gdb/testsuite/gdb.base/siginfo-obj.exp b/gdb/testsuite/gdb.base/siginfo-obj.exp
> --- a/gdb/testsuite/gdb.base/siginfo-obj.exp
> +++ b/gdb/testsuite/gdb.base/siginfo-obj.exp
> @@ -45,7 +45,7 @@ if ![runto_main] then {
>  }
>  
>  # Run to the signal.
> -gdb_test "continue" ".*Program received signal SIGSEGV.*" "continue to signal"
> +gdb_test "continue" ".*(Program|Thread .*) received signal SIGSEGV.*" "continue to signal"
>  
>  # Try to generate a core file, for a later test.
>  set gcorefile [standard_output_file $testfile.gcore]
> @@ -104,7 +104,7 @@ if ![runto_main] then {
>  }
>  
>  # Run to the signal.
> -gdb_test "continue" ".*Program received signal SIGSEGV.*" "continue to signal"
> +gdb_test "continue" ".*(Program|Thread .*) received signal SIGSEGV.*" "continue to signal"
>  
>  set test "set si_addr"
>  gdb_test "p \$_siginfo._sifields._sigfault.si_addr = 0x666" " = \\(void \\*\\) 0x666"
> diff --git a/gdb/testsuite/gdb.base/signest.exp b/gdb/testsuite/gdb.base/signest.exp
> --- a/gdb/testsuite/gdb.base/signest.exp
> +++ b/gdb/testsuite/gdb.base/signest.exp
> @@ -44,7 +44,7 @@ if { [is_address_zero_readable] } {
>  
>  # Run until we hit the SIGSEGV (or SIGBUS on some platforms).
>  gdb_test "continue" \
> -	 ".*Program received signal (SIGBUS|SIGSEGV).*bowler.*" \
> +	 ".*(Program|Thread .*) received signal (SIGBUS|SIGSEGV).*bowler.*" \
>           "continue to fault"
>  
>  # Insert conditional breakpoint at faulting instruction
> @@ -56,6 +56,6 @@ gdb_test "handle SIGBUS nostop print pas
>  
>  # Step off the faulting instruction into the handler, triggering nested faults
>  gdb_test "continue" \
> -         ".*Program received signal (SIGBUS|SIGSEGV).*Program received signal (SIGBUS|SIGSEGV).*exited normally.*" \
> +         ".*(Program|Thread .*) received signal (SIGBUS|SIGSEGV).*(Program|Thread .*) received signal (SIGBUS|SIGSEGV).*exited normally.*" \
>  	 "run through nested faults"
>  
> diff --git a/gdb/testsuite/gdb.base/signull.exp b/gdb/testsuite/gdb.base/signull.exp
> --- a/gdb/testsuite/gdb.base/signull.exp
> +++ b/gdb/testsuite/gdb.base/signull.exp
> @@ -72,14 +72,14 @@ set test "probe function pointer"
>  set function_pointer code_entry_point
>  set signame "SIGSEGV"
>  gdb_test_multiple "continue" "$test" {
> -    -re "Program received signal SIGSEGV.*bowler .*$gdb_prompt $" {
> +    -re "(Program|Thread .*) received signal SIGSEGV.*bowler .*$gdb_prompt $" {
>  	set function_pointer code_descriptor
>  	pass "$test (function descriptor)"
>      }
> -    -re "Program received signal SIGSEGV.*0.*$gdb_prompt $" {
> +    -re "(Program|Thread .*) received signal SIGSEGV.*0.*$gdb_prompt $" {
>  	pass "$test (function entry-point)"
>      }
> -    -re "Program received signal SIGBUS.*0.*$gdb_prompt $" {
> +    -re "(Program|Thread .*) received signal SIGBUS.*0.*$gdb_prompt $" {
>  	set signame SIGBUS
>  	pass "$test (function entry-point)"
>      }
> @@ -103,7 +103,7 @@ proc test_segv { name tag bt_from_segv b
>      gdb_test continue "Breakpoint.* bowler.*" "${name}; start with the bowler"
>      # NB: Don't use $tag in the testname - changes across systems.
>      gdb_test_no_output "set test = $tag" "${name}; select the pointer type"
> -    gdb_test continue "Program received signal ${signame}.*" \
> +    gdb_test continue "(Program|Thread .*) received signal ${signame}.*" \
>  	"${name}; take the ${signame}"
>      gdb_test backtrace $bt_from_segv "${name}; backtrace from ${signame}"
>      gdb_test continue "Breakpoint.* keeper.*" "${name}; continue to the keeper"
> diff --git a/gdb/testsuite/gdb.base/sigstep.exp b/gdb/testsuite/gdb.base/sigstep.exp
> --- a/gdb/testsuite/gdb.base/sigstep.exp
> +++ b/gdb/testsuite/gdb.base/sigstep.exp
> @@ -91,7 +91,7 @@ proc advance { enter_cmd in_handler_pref
>  	} else {
>  	    gdb_test "handle SIGALRM print pass stop"
>  	    gdb_test "handle SIGVTALRM print pass stop"
> -	    gdb_test "continue" "Program received signal.*" "continue to signal"
> +	    gdb_test "continue" "(Program|Thread .*) received signal.*" "continue to signal"
>  	}
>  	gdb_test "$enter_cmd" ".*handler .*" "$enter_cmd to handler"
>  
> @@ -150,7 +150,7 @@ set in_handler_map {
>  
>  	set test "advance in handler"
>  	gdb_test_multiple "advance $other_handler_location" $test {
> -	    -re "Program received signal SIGTRAP.*$gdb_prompt $" {
> +	    -re "(Program|Thread .*) received signal SIGTRAP.*$gdb_prompt $" {
>  		# On some versions of Linux (observed on
>  		# 3.16.4-200.fc20.x86_64), using PTRACE_SINGLESTEP+sig
>  		# to step into a signal handler, and then issuing
> diff --git a/gdb/testsuite/gdb.btrace/segv.exp b/gdb/testsuite/gdb.btrace/segv.exp
> --- a/gdb/testsuite/gdb.btrace/segv.exp
> +++ b/gdb/testsuite/gdb.btrace/segv.exp
> @@ -34,7 +34,7 @@ if ![runto_main] {
>  # trace the test code
>  gdb_test_no_output "record btrace"
>  gdb_test "continue" [multi_line \
> -  "Program received signal SIGSEGV, Segmentation fault\." \
> +  "(Program|Thread .*) received signal SIGSEGV, Segmentation fault\." \
>    "0x0* in \\\?\\\? \\\(\\\)" \
>    ] "cont to segv"
>  
> diff --git a/gdb/testsuite/gdb.reverse/sigall-precsave.exp b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
> --- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp
> +++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
> @@ -53,10 +53,10 @@ proc test_one_sig {nextsig} {
>  	}
>  	set testmsg "get signal $thissig"
>  	gdb_test_multiple "continue" $testmsg {
> -	    -re "Program received signal SIG$thissig.*handle_$thissig.*$gdb_prompt $" {
> +	    -re "(Program|Thread .*) received signal SIG$thissig.*handle_$thissig.*$gdb_prompt $" {
>  		fail "$testmsg (wrong location)"
>  	    }
> -	    -re "Program received signal SIG$thissig.*$gdb_prompt $" {
> +	    -re "(Program|Thread .*) received signal SIG$thissig.*$gdb_prompt $" {
>  		pass $testmsg
>  	    }
>  	    -re "Breakpoint.* handle_$thissig.*$gdb_prompt $" {
> @@ -114,7 +114,7 @@ proc test_one_sig_reverse {prevsig} {
>  	-re "Breakpoint.*handle_.*$gdb_prompt " {
>  	    pass "$testmsg (un-handled)"
>  	}
> -	-re "Program received signal SIG$prevsig.*$gdb_prompt " {
> +	-re "(Program|Thread .*) received signal SIG$prevsig.*$gdb_prompt " {
>  	    pass "reverse to signal event, $prevsig"
>  
>  	    set nested_testmsg "reverse signal delivered"
> @@ -299,7 +299,7 @@ gdb_test "handle SIGTERM stop print" \
>      "SIGTERM\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes.*"
>  gdb_test "b handle_TERM" "Breakpoint \[0-9\]+ .*"
>  gdb_test "continue" \
> -    "Continuing.*Program received signal SIGTERM.*" \
> +    "Continuing.*(Program|Thread .*) received signal SIGTERM.*" \
>      "get signal TERM"
>  gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"
>  
> diff --git a/gdb/testsuite/gdb.reverse/sigall-reverse.exp b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
> --- a/gdb/testsuite/gdb.reverse/sigall-reverse.exp
> +++ b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
> @@ -52,10 +52,10 @@ proc test_one_sig {nextsig} {
>  	}
>  	set testmsg "get signal $thissig"
>  	gdb_test_multiple "continue" $testmsg {
> -	    -re "Program received signal SIG$thissig.*handle_$thissig.*$gdb_prompt $" {
> +	    -re "(Program|Thread .*) received signal SIG$thissig.*handle_$thissig.*$gdb_prompt $" {
>  		fail "$testmsg (wrong location)"
>  	    }
> -	    -re "Program received signal SIG$thissig.*$gdb_prompt $" {
> +	    -re "(Program|Thread .*) received signal SIG$thissig.*$gdb_prompt $" {
>  		pass $testmsg
>  	    }
>  	    -re "Breakpoint.* handle_$thissig.*$gdb_prompt $" {
> @@ -113,7 +113,7 @@ proc test_one_sig_reverse {prevsig} {
>  	-re "Breakpoint.*handle_.*$gdb_prompt " {
>  	    pass "$testmsg (un-handled)"
>  	}
> -	-re "Program received signal SIG$prevsig.*$gdb_prompt " {
> +	-re "(Program|Thread .*) received signal SIG$prevsig.*$gdb_prompt " {
>  	    pass "reverse to signal event, $prevsig"
>  
>  	    set nested_testmsg "reverse signal delivered"
> @@ -247,7 +247,7 @@ gdb_test "handle SIGTERM stop print" \
>      "SIGTERM\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes.*"
>  gdb_test "b handle_TERM" "Breakpoint \[0-9\]+ .*"
>  gdb_test "continue" \
> -    "Continuing.*Program received signal SIGTERM.*" \
> +    "Continuing.*(Program|Thread .*) received signal SIGTERM.*" \
>      "get signal TERM"
>  gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"
>  
> diff --git a/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp b/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
> --- a/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
> +++ b/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
> @@ -58,7 +58,7 @@ proc connect_continue_ctrl_c {} {
>      }
>  
>      after 1000 {send_gdb "\003"}
> -    gdb_test "" "Program received signal SIGINT.*" "stop with control-c"
> +    gdb_test "" "(Program|Thread .*) received signal SIGINT.*" "stop with control-c"
>  }
>  
>  with_test_prefix "first" {
> diff --git a/gdb/testsuite/gdb.server/solib-list.exp b/gdb/testsuite/gdb.server/solib-list.exp
> --- a/gdb/testsuite/gdb.server/solib-list.exp
> +++ b/gdb/testsuite/gdb.server/solib-list.exp
> @@ -99,7 +99,7 @@ foreach nonstop { 0 1 } { with_test_pref
>  	}
>      }
>  
> -    gdb_test "continue" "Program received signal SIGUSR1, .*"
> +    gdb_test "continue" "(Program|Thread .*) received signal SIGUSR1, .*"
>      gdb_test "sharedlibrary" ".*"
>      gdb_test "p libvar" " = 23"
>  }}
> diff --git a/gdb/testsuite/gdb.trace/trace-condition.exp b/gdb/testsuite/gdb.trace/trace-condition.exp
> --- a/gdb/testsuite/gdb.trace/trace-condition.exp
> +++ b/gdb/testsuite/gdb.trace/trace-condition.exp
> @@ -99,7 +99,7 @@ proc test_tracepoints { trace_command co
>  	    -re ".*Breakpoint \[0-9\]+, end .*$gdb_prompt $" {
>  		pass "advance through tracing"
>  	    }
> -	    -re "Program received signal SIGSEGV, Segmentation fault\\..*$gdb_prompt $" {
> +	    -re "(Program|Thread .*) received signal SIGSEGV, Segmentation fault\\..*$gdb_prompt $" {
>  		if { $kfail_proc != 0 } {
>  		    $kfail_proc $trace_command
>  		}

Patch

# HG changeset patch
# Parent  83e8741eb69e875b4745b17494480e4271f0df40
Fix expected received signal message in testsuite

diff --git a/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp b/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp
--- a/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp
@@ -88,7 +88,7 @@  proc check_regs {regtype regnums value p
 # Run until end of signal handler
 
 gdb_test "continue" \
-    "Continuing.*Program received signal SIGILL.*" \
+    "Continuing.*(Program|Thread .*) received signal SIGILL.*" \
     "continue until signal"
 
 gdb_breakpoint [gdb_get_line_number "exit(0)"]
diff --git a/gdb/testsuite/gdb.arch/amd64-i386-address.exp b/gdb/testsuite/gdb.arch/amd64-i386-address.exp
--- a/gdb/testsuite/gdb.arch/amd64-i386-address.exp
+++ b/gdb/testsuite/gdb.arch/amd64-i386-address.exp
@@ -32,7 +32,7 @@  gdb_run_cmd
 
 set test "trap stop"
 gdb_test_multiple "" $test {
-    -re "Program received signal SIGTRAP,.*_start .*$gdb_prompt $" {
+    -re "(Program|Thread .*) received signal SIGTRAP,.*_start .*$gdb_prompt $" {
 	pass $test
     }
 }
diff --git a/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp b/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
--- a/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
+++ b/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
@@ -53,7 +53,7 @@  gdb_load ${binfile}
 gdb_run_cmd
 
 gdb_test_multiple {} "continue to abort()" {
-    -re ".*Program received signal SIGABRT,.*$gdb_prompt $" {
+    -re ".*(Program|Thread .*) received signal SIGABRT,.*$gdb_prompt $" {
 	pass "continue to abort()"
     }
 }
diff --git a/gdb/testsuite/gdb.arch/i386-mpx-call.exp b/gdb/testsuite/gdb.arch/i386-mpx-call.exp
--- a/gdb/testsuite/gdb.arch/i386-mpx-call.exp
+++ b/gdb/testsuite/gdb.arch/i386-mpx-call.exp
@@ -57,7 +57,7 @@  set bndcfg_reg " = \\\{raw = $hex, confi
                preserved = $hex, enabled = $hex\\\}\\\}"
 set bndstatus_reg  " = \\\{raw = $hex, status = \\\{bde = $hex,\
                     error = $hex\\\}\\\}"
-set u_fault [multi_line "Program received signal SIGSEGV, Segmentation fault" \
+set u_fault [multi_line "(Program|Thread .*) received signal SIGSEGV, Segmentation fault" \
                         "Upper bound violation while accessing address $hex" \
                         "Bounds: \\\[lower = $hex, upper = $hex\\\]"]
 
diff --git a/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp b/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp
--- a/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp
+++ b/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp
@@ -45,11 +45,11 @@  gdb_test_multiple "print have_mpx ()" "h
     }
 }
 
-set u_fault [multi_line "Program received signal SIGSEGV, Segmentation fault" \
+set u_fault [multi_line "(Program|Thread .*) received signal SIGSEGV, Segmentation fault" \
                         "Upper bound violation while accessing address $hex" \
                         "Bounds: \\\[lower = $hex, upper = $hex\\\]"]
 
-set l_fault [multi_line "Program received signal SIGSEGV, Segmentation fault" \
+set l_fault [multi_line "(Program|Thread .*) received signal SIGSEGV, Segmentation fault" \
                         "Lower bound violation while accessing address $hex" \
                         "Bounds: \\\[lower = $hex, upper = $hex\\\]"]
 
diff --git a/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp b/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp
--- a/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp
+++ b/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp
@@ -51,11 +51,11 @@  gdb_test_multiple "print have_mpx ()" "h
     }
 }
 
-set violation [multi_line "Program received signal SIGSEGV, Segmentation fault" \
+set violation [multi_line "(Program|Thread .*) received signal SIGSEGV, Segmentation fault" \
                           "Upper bound violation while accessing address $hex" \
                           "Bounds: \\\[lower = $hex, upper = $hex\\\]"]
 
-set segv_with_exit "Program received signal SIGSEGV,\
+set segv_with_exit "(Program|Thread .*) received signal SIGSEGV,\
         Segmentation fault.*$inferior_exited_re.*"
 
 
diff --git a/gdb/testsuite/gdb.arch/i386-prologue.exp b/gdb/testsuite/gdb.arch/i386-prologue.exp
--- a/gdb/testsuite/gdb.arch/i386-prologue.exp
+++ b/gdb/testsuite/gdb.arch/i386-prologue.exp
@@ -72,7 +72,7 @@  if ![runto_main] then {
 
 # Testcase for standard prologue.
 
-gdb_test "continue" "Program received signal SIGTRAP.*" "continue to standard"
+gdb_test "continue" "(Program|Thread .*) received signal SIGTRAP.*" "continue to standard"
 
 skip_breakpoint standard
 
@@ -99,7 +99,7 @@  gdb_test "backtrace 10" \
 	"first backtrace in stack_align_ecx"
 
 gdb_test "continue" \
-	"Program received signal SIGTRAP.*" \
+	"(Program|Thread .*) received signal SIGTRAP.*" \
 	"continue in stack_align_ecx"
 
 skip_breakpoint stack_align_ecx
@@ -127,7 +127,7 @@  gdb_test "backtrace 10" \
 	"first backtrace in stack_align_edx"
 
 gdb_test "continue" \
-	"Program received signal SIGTRAP.*" \
+	"(Program|Thread .*) received signal SIGTRAP.*" \
 	"continue in stack_align_edx"
 
 skip_breakpoint stack_align_edx
@@ -155,7 +155,7 @@  gdb_test "backtrace 10" \
 	"first backtrace in stack_align_eax"
 
 gdb_test "continue" \
-	"Program received signal SIGTRAP.*" \
+	"(Program|Thread .*) received signal SIGTRAP.*" \
 	"continue in stack_align_eax"
 
 skip_breakpoint stack_align_eax
@@ -171,7 +171,7 @@  gdb_test "info frame" \
 
 # Testcase from symtab/1253.
 
-gdb_test "continue" "Program received signal SIGTRAP.*" "continue to gdb1253"
+gdb_test "continue" "(Program|Thread .*) received signal SIGTRAP.*" "continue to gdb1253"
 
 skip_breakpoint gdb1253
 
@@ -186,7 +186,7 @@  gdb_test "info frame" \
 
 # Testcase from backtrace/1718.
 
-gdb_test "continue" "Program received signal SIGTRAP.*" "continue to gdb1718"
+gdb_test "continue" "(Program|Thread .*) received signal SIGTRAP.*" "continue to gdb1718"
 
 skip_breakpoint gdb1718
 
@@ -202,7 +202,7 @@  gdb_test "info frame" \
 
 # Testcase from backtrace/1338.
 
-gdb_test "continue" "Program received signal SIGTRAP.*" "continue to gdb1338"
+gdb_test "continue" "(Program|Thread .*) received signal SIGTRAP.*" "continue to gdb1338"
 
 skip_breakpoint gdb1338
 
diff --git a/gdb/testsuite/gdb.arch/i386-size-overlap.exp b/gdb/testsuite/gdb.arch/i386-size-overlap.exp
--- a/gdb/testsuite/gdb.arch/i386-size-overlap.exp
+++ b/gdb/testsuite/gdb.arch/i386-size-overlap.exp
@@ -41,7 +41,7 @@  gdb_load ${binfile}
 # We use gdb_run_cmd so this stands a chance to work for remote
 # targets too.
 gdb_run_cmd
-gdb_test "" "Program received signal SIGTRAP.*" "run past main"
+gdb_test "" "(Program|Thread .*) received signal SIGTRAP.*" "run past main"
 
 set message "backtrace shows the outer function"
 gdb_test_multiple "backtrace 10" $message {
diff --git a/gdb/testsuite/gdb.arch/i386-size.exp b/gdb/testsuite/gdb.arch/i386-size.exp
--- a/gdb/testsuite/gdb.arch/i386-size.exp
+++ b/gdb/testsuite/gdb.arch/i386-size.exp
@@ -46,7 +46,7 @@  gdb_load ${binfile}
 # We use gdb_run_cmd so this stands a chance to work for remote
 # targets too.
 gdb_run_cmd
-gdb_test "" "Program received signal SIGTRAP.*" "run past main"
+gdb_test "" "(Program|Thread .*) received signal SIGTRAP.*" "run past main"
 
 set message "backtrace shows no function"
 gdb_test_multiple "backtrace 10" $message {
diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
--- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
+++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
@@ -48,7 +48,7 @@  foreach i {0 1 2 3 4} {
 	-re " = 2\r\n$gdb_prompt $" {
 	    pass $test
 	}
-	-re "Program received signal SIGSEGV, Segmentation fault\\..*\r\n$gdb_prompt $" {
+	-re "(Program|Thread .*) received signal SIGSEGV, Segmentation fault\\..*\r\n$gdb_prompt $" {
 	    fail $test
 	}
     }
diff --git a/gdb/testsuite/gdb.arch/i386-unwind.exp b/gdb/testsuite/gdb.arch/i386-unwind.exp
--- a/gdb/testsuite/gdb.arch/i386-unwind.exp
+++ b/gdb/testsuite/gdb.arch/i386-unwind.exp
@@ -46,7 +46,7 @@  gdb_load ${binfile}
 # We use gdb_run_cmd so this stands a chance to work for remote
 # targets too.
 gdb_run_cmd
-gdb_test "" "Program received signal SIGTRAP.*" "run past gdb1435"
+gdb_test "" "(Program|Thread .*) received signal SIGTRAP.*" "run past gdb1435"
 
 gdb_test "backtrace 10" \
 	"#1\[ \t]*$hex in gdb1435.*\r\n#2\[ \t\]*$hex in main.*" \
diff --git a/gdb/testsuite/gdb.arch/powerpc-stackless.exp b/gdb/testsuite/gdb.arch/powerpc-stackless.exp
--- a/gdb/testsuite/gdb.arch/powerpc-stackless.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-stackless.exp
@@ -31,7 +31,7 @@  gdb_run_cmd
 
 set test "run until SIGSEGV"
 gdb_test_multiple "" $test {
-    -re "Program received signal SIGSEGV.*$gdb_prompt $" {
+    -re "(Program|Thread .*) received signal SIGSEGV.*$gdb_prompt $" {
   pass $test
     }
 }
diff --git a/gdb/testsuite/gdb.arch/s390-stackless.exp b/gdb/testsuite/gdb.arch/s390-stackless.exp
--- a/gdb/testsuite/gdb.arch/s390-stackless.exp
+++ b/gdb/testsuite/gdb.arch/s390-stackless.exp
@@ -29,7 +29,7 @@  gdb_run_cmd
 
 set test "run until SIGSEGV"
 gdb_test_multiple "" $test {
-    -re "Program received signal SIGSEGV.*$gdb_prompt $" {
+    -re "(Program|Thread .*) received signal SIGSEGV.*$gdb_prompt $" {
 	pass $test
     }
 }
diff --git a/gdb/testsuite/gdb.arch/s390-tdbregs.exp b/gdb/testsuite/gdb.arch/s390-tdbregs.exp
--- a/gdb/testsuite/gdb.arch/s390-tdbregs.exp
+++ b/gdb/testsuite/gdb.arch/s390-tdbregs.exp
@@ -41,7 +41,7 @@  if ![runto_main] then {
 }
 
 gdb_test_multiple "next" "check for TE support" {
-    -re "Program received signal SIGILL,.*\r\n$gdb_prompt $" {
+    -re "(Program|Thread .*) received signal SIGILL,.*\r\n$gdb_prompt $" {
 	unsupported "no TE support."
 	return
     }
@@ -59,7 +59,7 @@  set crashline [gdb_get_line_number "FAUL
 gdb_test "print \$tdb0" "\\\$\[0-9\]+ = <unavailable>" "tdb0 unavailable"
 gdb_test "print \$tr0" "\\\$\[0-9\]+ = <unavailable>" "tr0 unavailable"
 gdb_test "next" \
-    "Program received signal SIGSEGV, .*" \
+    "(Program|Thread .*) received signal SIGSEGV, .*" \
     "crash in transaction"
 gdb_test "print/x \$tdb0" "\\\$\[0-9\]+ = 0x1.*" "tdb0 available"
 gdb_test "set print symbol-filename" "" "set print symbol-filename"
diff --git a/gdb/testsuite/gdb.arch/s390-vregs.exp b/gdb/testsuite/gdb.arch/s390-vregs.exp
--- a/gdb/testsuite/gdb.arch/s390-vregs.exp
+++ b/gdb/testsuite/gdb.arch/s390-vregs.exp
@@ -52,7 +52,7 @@  gdb_test_multiple "x/i \$pc" "get PC at 
 }
 
 gdb_test_multiple "stepi" "check for vector support" {
-    -re "Program received signal SIGILL,.*\r\n$gdb_prompt $" {
+    -re "(Program|Thread .*) received signal SIGILL,.*\r\n$gdb_prompt $" {
 	unsupported "no vector support."
 	return
     }
diff --git a/gdb/testsuite/gdb.arch/sparc64-adi.exp b/gdb/testsuite/gdb.arch/sparc64-adi.exp
--- a/gdb/testsuite/gdb.arch/sparc64-adi.exp
+++ b/gdb/testsuite/gdb.arch/sparc64-adi.exp
@@ -48,6 +48,6 @@  gdb_test "adi x/100 shmaddr" "${hex}00:\
          "examine new ADI"
 gdb_test_no_output "adi a/100 shmaddr=0x0" "reset ADI"
 gdb_test "continue" \
-         [multi_line "Program received signal SIGSEGV, Segmentation fault.*" \
+         [multi_line "(Program|Thread .*) received signal SIGSEGV, Segmentation fault.*" \
                      "ADI precise mismatch while accessing address $hex.*" ] \
 	"continue to sigsegv"
diff --git a/gdb/testsuite/gdb.base/auxv.exp b/gdb/testsuite/gdb.base/auxv.exp
--- a/gdb/testsuite/gdb.base/auxv.exp
+++ b/gdb/testsuite/gdb.base/auxv.exp
@@ -126,7 +126,7 @@  set live_data [fetch_auxv "info auxv on 
 set gcore_works [gdb_gcore_cmd "$gcorefile" "gcore"]
 
 # Let the program continue and die.
-gdb_test continue ".*Program received signal.*"
+gdb_test continue ".*(Program|Thread .*) received signal.*"
 gdb_test continue ".*Program terminated with signal.*"
 
 # Now collect the core dump it left.
diff --git a/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp b/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
--- a/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
+++ b/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
@@ -84,7 +84,7 @@  proc do_test {} {
 		fail "$test (SIGALRM)"
 		return
 	    }
-	    -re "Program received signal SIGINT.*\r\n$gdb_prompt $" {
+	    -re "(Program|Thread .*) received signal SIGINT.*\r\n$gdb_prompt $" {
 		send_log "$internal_pass (SIGINT)\n"
 	    }
 	    -re "Quit\r\n$gdb_prompt $" {
diff --git a/gdb/testsuite/gdb.base/bp-permanent.exp b/gdb/testsuite/gdb.base/bp-permanent.exp
--- a/gdb/testsuite/gdb.base/bp-permanent.exp
+++ b/gdb/testsuite/gdb.base/bp-permanent.exp
@@ -134,7 +134,7 @@  proc test {always_inserted sw_watchpoint
 	        unsupported "failed to stop at permanent breakpoint"
 		return
 	    }
-	    -re "Program received signal SIGTRAP.*$gdb_prompt $" {
+	    -re "(Program|Thread .*) received signal SIGTRAP.*$gdb_prompt $" {
 	    	pass $test
 	    }
 	}
@@ -174,7 +174,7 @@  proc test {always_inserted sw_watchpoint
 	# disabled, it should act as if we hadn't created it in the first
 	# place.  IOW, we should get a random signal, and, the breakpoint's
 	# command should not run.
-	gdb_test "continue" "Program received signal SIGTRAP.*" \
+	gdb_test "continue" "(Program|Thread .*) received signal SIGTRAP.*" \
 	    "disabled permanent breakpoint doesn't explain stop"
 
 	gdb_test "info breakpoints" \
@@ -257,7 +257,7 @@  proc test {always_inserted sw_watchpoint
 
 		set test "single-step to handler"
 		gdb_test_multiple "stepi" $test {
-		    -re "Program received signal SIGTRAP.*$gdb_prompt $" {
+		    -re "(Program|Thread .*) received signal SIGTRAP.*$gdb_prompt $" {
 			fail $test
 		    }
 		    -re "handler .*$gdb_prompt $" {
diff --git a/gdb/testsuite/gdb.base/call-signal-resume.exp b/gdb/testsuite/gdb.base/call-signal-resume.exp
--- a/gdb/testsuite/gdb.base/call-signal-resume.exp
+++ b/gdb/testsuite/gdb.base/call-signal-resume.exp
@@ -105,7 +105,7 @@  gdb_test "continue" "Breakpoint \[0-9\]*
 
 # Continue again, we should get a signal.
 
-gdb_test "continue" "Program received signal .*" \
+gdb_test "continue" "(Program|Thread .*) received signal .*" \
     "continue to receipt of signal"
 
 # Hand call another function that prematurely stops,
diff --git a/gdb/testsuite/gdb.base/ending-run.exp b/gdb/testsuite/gdb.base/ending-run.exp
--- a/gdb/testsuite/gdb.base/ending-run.exp
+++ b/gdb/testsuite/gdb.base/ending-run.exp
@@ -199,7 +199,7 @@  gdb_test_multiple "next" "step out of ma
     -re "_*start\[0-9\]* \\(\[^)\]*\\).*$gdb_prompt $" {
         pass "step out of main"
     }
-    -re ".*Program received signal SIGTRAP.*$gdb_prompt $" {
+    -re ".*(Program|Thread .*) received signal SIGTRAP.*$gdb_prompt $" {
         pass "step out of main"
     }
     -re ".*in.*__uClibc_main.*$gdb_prompt $" {
diff --git a/gdb/testsuite/gdb.base/exitsignal.exp b/gdb/testsuite/gdb.base/exitsignal.exp
--- a/gdb/testsuite/gdb.base/exitsignal.exp
+++ b/gdb/testsuite/gdb.base/exitsignal.exp
@@ -47,7 +47,7 @@  gdb_test "print \$_exitcode" " = void" \
     "\$_exitcode is void before running"
 
 # Trigger SIGSEGV.
-gdb_test "continue" "Program received signal SIGSEGV.*" "trigger SIGSEGV"
+gdb_test "continue" "(Program|Thread .*) received signal SIGSEGV.*" "trigger SIGSEGV"
 
 # Continue until the end.
 gdb_test "continue" "Program terminated with signal SIGSEGV.*" \
diff --git a/gdb/testsuite/gdb.base/interrupt-noterm.exp b/gdb/testsuite/gdb.base/interrupt-noterm.exp
--- a/gdb/testsuite/gdb.base/interrupt-noterm.exp
+++ b/gdb/testsuite/gdb.base/interrupt-noterm.exp
@@ -67,7 +67,7 @@  gdb_test_multiple $test $test {
 
 set test "inferior received SIGINT"
 gdb_test_multiple "" $test {
-    -re "\r\nProgram received signal SIGINT.*" {
+    -re "\r\n(Program|Thread .*) received signal SIGINT.*" {
 	# This appears after the prompt, which was already consumed
 	# above.
 	pass $test
diff --git a/gdb/testsuite/gdb.base/interrupt.exp b/gdb/testsuite/gdb.base/interrupt.exp
--- a/gdb/testsuite/gdb.base/interrupt.exp
+++ b/gdb/testsuite/gdb.base/interrupt.exp
@@ -82,7 +82,7 @@  if ![file exists $binfile] then {
 	send_gdb "\003"
 	set msg "send_gdb control C"
 	gdb_test_multiple "" $msg {
-	    -re "Program received signal SIGINT.*$gdb_prompt $" {
+	    -re "(Program|Thread .*) received signal SIGINT.*$gdb_prompt $" {
 		pass $msg
 	    }
 	}
@@ -93,7 +93,7 @@  if ![file exists $binfile] then {
 	    -re " = 4.*$gdb_prompt $" {
 		pass $msg
 	    }
-	    -re ".*Program received signal SIG(SEGV|ILL).*$gdb_prompt $" {
+	    -re ".*(Program|Thread .*) received signal SIG(SEGV|ILL).*$gdb_prompt $" {
 		setup_xfail "i*86-pc-linux*-gnu*"
 		fail "child died when we called func1, skipped rest of tests"
 		return
@@ -166,7 +166,7 @@  if ![file exists $binfile] then {
 	    set msg "Send Control-C, second time"
 	    send_gdb "\003"
 	    gdb_test_multiple "" "$msg" {
-		-re "Program received signal SIGINT.*$gdb_prompt $" {
+		-re "(Program|Thread .*) received signal SIGINT.*$gdb_prompt $" {
 		    pass "$msg"
 		}
 	    }
diff --git a/gdb/testsuite/gdb.base/jit-reader.exp b/gdb/testsuite/gdb.base/jit-reader.exp
--- a/gdb/testsuite/gdb.base/jit-reader.exp
+++ b/gdb/testsuite/gdb.base/jit-reader.exp
@@ -111,7 +111,7 @@  proc jit_reader_test {} {
 
     gdb_test_no_output "jit-reader-load ${jit_reader_bin}" "jit-reader-load"
     gdb_run_cmd
-    gdb_test "" "Program received signal SIGTRAP, .*" "expect SIGTRAP"
+    gdb_test "" "(Program|Thread .*) received signal SIGTRAP, .*" "expect SIGTRAP"
 
     # Test the JIT reader unwinder.
     with_test_prefix "with jit-reader" {
diff --git a/gdb/testsuite/gdb.base/kill-after-signal.exp b/gdb/testsuite/gdb.base/kill-after-signal.exp
--- a/gdb/testsuite/gdb.base/kill-after-signal.exp
+++ b/gdb/testsuite/gdb.base/kill-after-signal.exp
@@ -35,7 +35,7 @@  if ![runto_main] {
     return -1
 }
 
-gdb_test "continue" "Program received signal SIGUSR1, .*"
+gdb_test "continue" "(Program|Thread .*) received signal SIGUSR1, .*"
 gdb_test "stepi" "\r\nhandler .*"
 gdb_test_multiple "kill" "kill" {
     -re "Kill the program being debugged\\? \\(y or n\\) $" {
diff --git a/gdb/testsuite/gdb.base/random-signal.exp b/gdb/testsuite/gdb.base/random-signal.exp
--- a/gdb/testsuite/gdb.base/random-signal.exp
+++ b/gdb/testsuite/gdb.base/random-signal.exp
@@ -47,7 +47,7 @@  proc do_test {} {
     # For this to work we must be sure to consume the "Continuing."
     # message first, or GDB's signal handler may not be in place.
     after 500 {send_gdb "\003"}
-    gdb_test "" "Program received signal SIGINT.*" "stop with control-c"
+    gdb_test "" "(Program|Thread .*) received signal SIGINT.*" "stop with control-c"
 }
 
 # With native debugging and "run" (with job control), the ctrl-c
diff --git a/gdb/testsuite/gdb.base/range-stepping.exp b/gdb/testsuite/gdb.base/range-stepping.exp
--- a/gdb/testsuite/gdb.base/range-stepping.exp
+++ b/gdb/testsuite/gdb.base/range-stepping.exp
@@ -193,7 +193,7 @@  if ![target_info exists gdb,nointerrupts
 		incr vcont_r_counter
 		exp_continue
 	    }
-	    -re "Program received signal SIGINT.*$gdb_prompt $" {
+	    -re "(Program|Thread .*) received signal SIGINT.*$gdb_prompt $" {
 		pass $test
 	    }
 	}
diff --git a/gdb/testsuite/gdb.base/relativedebug.exp b/gdb/testsuite/gdb.base/relativedebug.exp
--- a/gdb/testsuite/gdb.base/relativedebug.exp
+++ b/gdb/testsuite/gdb.base/relativedebug.exp
@@ -43,7 +43,7 @@  gdb_test_multiple $test $test {
 }
 
 # pause () -> SIGALRM -> handler () -> abort ()
-gdb_test "continue" "Program received signal SIGABRT.*"
+gdb_test "continue" "(Program|Thread .*) received signal SIGABRT.*"
 
 # Backtracing through pause broke if glibc has been prelinked,
 # because the separate debug files in /usr/lib/debug had different
diff --git a/gdb/testsuite/gdb.base/sigall.exp b/gdb/testsuite/gdb.base/sigall.exp
--- a/gdb/testsuite/gdb.base/sigall.exp
+++ b/gdb/testsuite/gdb.base/sigall.exp
@@ -50,7 +50,7 @@  proc test_one_sig {nextsig} {
 	}
 
 	gdb_test "continue" \
-	    "Continuing.*Program received signal SIG$esig.*" \
+	    "Continuing.*(Program|Thread .*) received signal SIG$esig.*" \
 		"get signal $esig"
     }
 
@@ -180,7 +180,7 @@  gdb_test "handle SIGTERM stop print" \
     "SIGTERM\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes.*"
 gdb_test "b handle_TERM" "Breakpoint \[0-9\]+ .*"
 gdb_test "continue" \
-    "Continuing.*Program received signal SIGTERM.*" \
+    "Continuing.*(Program|Thread .*) received signal SIGTERM.*" \
     "get signal TERM"
 gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"
 gdb_continue_to_end "continue to sigall exit"
diff --git a/gdb/testsuite/gdb.base/sigbpt.exp b/gdb/testsuite/gdb.base/sigbpt.exp
--- a/gdb/testsuite/gdb.base/sigbpt.exp
+++ b/gdb/testsuite/gdb.base/sigbpt.exp
@@ -76,9 +76,9 @@  gdb_test "advance bowler" "bowler.*" "ad
 set test "stepping to fault"
 set signame "SIGSEGV"
 gdb_test_multiple "stepi" "$test" {
-    -re "Program received signal (SIGBUS|SIGSEGV).*pc(\r\n| *) *=> (0x\[0-9a-f\]*).*$gdb_prompt $" {
-	set signame $expect_out(1,string)
-	set segv_addr $expect_out(3,string)
+    -re "(Program|Thread .*) received signal (SIGBUS|SIGSEGV).*pc(\r\n| *) *=> (0x\[0-9a-f\]*).*$gdb_prompt $" {
+	set signame $expect_out(2,string)
+	set segv_addr $expect_out(4,string)
 	pass "$test"
     }
     -re " .*pc(\r\n| *)=> (0x\[0-9a-f\]*).*bowler.*$gdb_prompt $" {
@@ -171,7 +171,7 @@  proc stepi_out { name args } {
 	    send_gdb "stepi\n"
 	    exp_continue
 	}
-	-re "Program received signal SIGSEGV.*$gdb_prompt $" {
+	-re "(Program|Thread .*) received signal SIGSEGV.*$gdb_prompt $" {
 	    kfail gdb/8807 "$test (executed fault insn)"
 	}
 	-re "Breakpoint.*pc(\r\n| *)[at_segv] .*bowler.*$gdb_prompt $" {
@@ -236,7 +236,7 @@  proc cont_out { name args } {
 
     # Now single step the faulted instrction at that breakpoint.
     gdb_test "stepi" \
-	"Program received signal ${signame}.*pc(\r\n| *)=> [at_segv] .*" \
+	"(Program|Thread .*) received signal ${signame}.*pc(\r\n| *)=> [at_segv] .*" \
 	"${name}; stepi fault"    
 
     # Clear any breakpoints
diff --git a/gdb/testsuite/gdb.base/siginfo-addr.exp b/gdb/testsuite/gdb.base/siginfo-addr.exp
--- a/gdb/testsuite/gdb.base/siginfo-addr.exp
+++ b/gdb/testsuite/gdb.base/siginfo-addr.exp
@@ -40,7 +40,7 @@  if ![runto_main] then {
 }
 
 # Run to the signal.
-gdb_test "continue" ".*Program received signal SIGSEGV.*" "continue to signal"
+gdb_test "continue" ".*(Program|Thread .*) received signal SIGSEGV.*" "continue to signal"
 
 gdb_breakpoint "pass"
 
diff --git a/gdb/testsuite/gdb.base/siginfo-infcall.exp b/gdb/testsuite/gdb.base/siginfo-infcall.exp
--- a/gdb/testsuite/gdb.base/siginfo-infcall.exp
+++ b/gdb/testsuite/gdb.base/siginfo-infcall.exp
@@ -31,7 +31,7 @@  if ![runto_main] {
 gdb_breakpoint "pass"
 gdb_breakpoint "fail"
 
-gdb_test "continue" "Program received signal SIGUSR1, .*" "continue to SIGUSR1"
+gdb_test "continue" "(Program|Thread .*) received signal SIGUSR1, .*" "continue to SIGUSR1"
 
 gdb_test "p callme ()" " = 42"
 
diff --git a/gdb/testsuite/gdb.base/siginfo-obj.exp b/gdb/testsuite/gdb.base/siginfo-obj.exp
--- a/gdb/testsuite/gdb.base/siginfo-obj.exp
+++ b/gdb/testsuite/gdb.base/siginfo-obj.exp
@@ -45,7 +45,7 @@  if ![runto_main] then {
 }
 
 # Run to the signal.
-gdb_test "continue" ".*Program received signal SIGSEGV.*" "continue to signal"
+gdb_test "continue" ".*(Program|Thread .*) received signal SIGSEGV.*" "continue to signal"
 
 # Try to generate a core file, for a later test.
 set gcorefile [standard_output_file $testfile.gcore]
@@ -104,7 +104,7 @@  if ![runto_main] then {
 }
 
 # Run to the signal.
-gdb_test "continue" ".*Program received signal SIGSEGV.*" "continue to signal"
+gdb_test "continue" ".*(Program|Thread .*) received signal SIGSEGV.*" "continue to signal"
 
 set test "set si_addr"
 gdb_test "p \$_siginfo._sifields._sigfault.si_addr = 0x666" " = \\(void \\*\\) 0x666"
diff --git a/gdb/testsuite/gdb.base/signest.exp b/gdb/testsuite/gdb.base/signest.exp
--- a/gdb/testsuite/gdb.base/signest.exp
+++ b/gdb/testsuite/gdb.base/signest.exp
@@ -44,7 +44,7 @@  if { [is_address_zero_readable] } {
 
 # Run until we hit the SIGSEGV (or SIGBUS on some platforms).
 gdb_test "continue" \
-	 ".*Program received signal (SIGBUS|SIGSEGV).*bowler.*" \
+	 ".*(Program|Thread .*) received signal (SIGBUS|SIGSEGV).*bowler.*" \
          "continue to fault"
 
 # Insert conditional breakpoint at faulting instruction
@@ -56,6 +56,6 @@  gdb_test "handle SIGBUS nostop print pas
 
 # Step off the faulting instruction into the handler, triggering nested faults
 gdb_test "continue" \
-         ".*Program received signal (SIGBUS|SIGSEGV).*Program received signal (SIGBUS|SIGSEGV).*exited normally.*" \
+         ".*(Program|Thread .*) received signal (SIGBUS|SIGSEGV).*(Program|Thread .*) received signal (SIGBUS|SIGSEGV).*exited normally.*" \
 	 "run through nested faults"
 
diff --git a/gdb/testsuite/gdb.base/signull.exp b/gdb/testsuite/gdb.base/signull.exp
--- a/gdb/testsuite/gdb.base/signull.exp
+++ b/gdb/testsuite/gdb.base/signull.exp
@@ -72,14 +72,14 @@  set test "probe function pointer"
 set function_pointer code_entry_point
 set signame "SIGSEGV"
 gdb_test_multiple "continue" "$test" {
-    -re "Program received signal SIGSEGV.*bowler .*$gdb_prompt $" {
+    -re "(Program|Thread .*) received signal SIGSEGV.*bowler .*$gdb_prompt $" {
 	set function_pointer code_descriptor
 	pass "$test (function descriptor)"
     }
-    -re "Program received signal SIGSEGV.*0.*$gdb_prompt $" {
+    -re "(Program|Thread .*) received signal SIGSEGV.*0.*$gdb_prompt $" {
 	pass "$test (function entry-point)"
     }
-    -re "Program received signal SIGBUS.*0.*$gdb_prompt $" {
+    -re "(Program|Thread .*) received signal SIGBUS.*0.*$gdb_prompt $" {
 	set signame SIGBUS
 	pass "$test (function entry-point)"
     }
@@ -103,7 +103,7 @@  proc test_segv { name tag bt_from_segv b
     gdb_test continue "Breakpoint.* bowler.*" "${name}; start with the bowler"
     # NB: Don't use $tag in the testname - changes across systems.
     gdb_test_no_output "set test = $tag" "${name}; select the pointer type"
-    gdb_test continue "Program received signal ${signame}.*" \
+    gdb_test continue "(Program|Thread .*) received signal ${signame}.*" \
 	"${name}; take the ${signame}"
     gdb_test backtrace $bt_from_segv "${name}; backtrace from ${signame}"
     gdb_test continue "Breakpoint.* keeper.*" "${name}; continue to the keeper"
diff --git a/gdb/testsuite/gdb.base/sigstep.exp b/gdb/testsuite/gdb.base/sigstep.exp
--- a/gdb/testsuite/gdb.base/sigstep.exp
+++ b/gdb/testsuite/gdb.base/sigstep.exp
@@ -91,7 +91,7 @@  proc advance { enter_cmd in_handler_pref
 	} else {
 	    gdb_test "handle SIGALRM print pass stop"
 	    gdb_test "handle SIGVTALRM print pass stop"
-	    gdb_test "continue" "Program received signal.*" "continue to signal"
+	    gdb_test "continue" "(Program|Thread .*) received signal.*" "continue to signal"
 	}
 	gdb_test "$enter_cmd" ".*handler .*" "$enter_cmd to handler"
 
@@ -150,7 +150,7 @@  set in_handler_map {
 
 	set test "advance in handler"
 	gdb_test_multiple "advance $other_handler_location" $test {
-	    -re "Program received signal SIGTRAP.*$gdb_prompt $" {
+	    -re "(Program|Thread .*) received signal SIGTRAP.*$gdb_prompt $" {
 		# On some versions of Linux (observed on
 		# 3.16.4-200.fc20.x86_64), using PTRACE_SINGLESTEP+sig
 		# to step into a signal handler, and then issuing
diff --git a/gdb/testsuite/gdb.btrace/segv.exp b/gdb/testsuite/gdb.btrace/segv.exp
--- a/gdb/testsuite/gdb.btrace/segv.exp
+++ b/gdb/testsuite/gdb.btrace/segv.exp
@@ -34,7 +34,7 @@  if ![runto_main] {
 # trace the test code
 gdb_test_no_output "record btrace"
 gdb_test "continue" [multi_line \
-  "Program received signal SIGSEGV, Segmentation fault\." \
+  "(Program|Thread .*) received signal SIGSEGV, Segmentation fault\." \
   "0x0* in \\\?\\\? \\\(\\\)" \
   ] "cont to segv"
 
diff --git a/gdb/testsuite/gdb.reverse/sigall-precsave.exp b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
--- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
@@ -53,10 +53,10 @@  proc test_one_sig {nextsig} {
 	}
 	set testmsg "get signal $thissig"
 	gdb_test_multiple "continue" $testmsg {
-	    -re "Program received signal SIG$thissig.*handle_$thissig.*$gdb_prompt $" {
+	    -re "(Program|Thread .*) received signal SIG$thissig.*handle_$thissig.*$gdb_prompt $" {
 		fail "$testmsg (wrong location)"
 	    }
-	    -re "Program received signal SIG$thissig.*$gdb_prompt $" {
+	    -re "(Program|Thread .*) received signal SIG$thissig.*$gdb_prompt $" {
 		pass $testmsg
 	    }
 	    -re "Breakpoint.* handle_$thissig.*$gdb_prompt $" {
@@ -114,7 +114,7 @@  proc test_one_sig_reverse {prevsig} {
 	-re "Breakpoint.*handle_.*$gdb_prompt " {
 	    pass "$testmsg (un-handled)"
 	}
-	-re "Program received signal SIG$prevsig.*$gdb_prompt " {
+	-re "(Program|Thread .*) received signal SIG$prevsig.*$gdb_prompt " {
 	    pass "reverse to signal event, $prevsig"
 
 	    set nested_testmsg "reverse signal delivered"
@@ -299,7 +299,7 @@  gdb_test "handle SIGTERM stop print" \
     "SIGTERM\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes.*"
 gdb_test "b handle_TERM" "Breakpoint \[0-9\]+ .*"
 gdb_test "continue" \
-    "Continuing.*Program received signal SIGTERM.*" \
+    "Continuing.*(Program|Thread .*) received signal SIGTERM.*" \
     "get signal TERM"
 gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"
 
diff --git a/gdb/testsuite/gdb.reverse/sigall-reverse.exp b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
--- a/gdb/testsuite/gdb.reverse/sigall-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
@@ -52,10 +52,10 @@  proc test_one_sig {nextsig} {
 	}
 	set testmsg "get signal $thissig"
 	gdb_test_multiple "continue" $testmsg {
-	    -re "Program received signal SIG$thissig.*handle_$thissig.*$gdb_prompt $" {
+	    -re "(Program|Thread .*) received signal SIG$thissig.*handle_$thissig.*$gdb_prompt $" {
 		fail "$testmsg (wrong location)"
 	    }
-	    -re "Program received signal SIG$thissig.*$gdb_prompt $" {
+	    -re "(Program|Thread .*) received signal SIG$thissig.*$gdb_prompt $" {
 		pass $testmsg
 	    }
 	    -re "Breakpoint.* handle_$thissig.*$gdb_prompt $" {
@@ -113,7 +113,7 @@  proc test_one_sig_reverse {prevsig} {
 	-re "Breakpoint.*handle_.*$gdb_prompt " {
 	    pass "$testmsg (un-handled)"
 	}
-	-re "Program received signal SIG$prevsig.*$gdb_prompt " {
+	-re "(Program|Thread .*) received signal SIG$prevsig.*$gdb_prompt " {
 	    pass "reverse to signal event, $prevsig"
 
 	    set nested_testmsg "reverse signal delivered"
@@ -247,7 +247,7 @@  gdb_test "handle SIGTERM stop print" \
     "SIGTERM\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes.*"
 gdb_test "b handle_TERM" "Breakpoint \[0-9\]+ .*"
 gdb_test "continue" \
-    "Continuing.*Program received signal SIGTERM.*" \
+    "Continuing.*(Program|Thread .*) received signal SIGTERM.*" \
     "get signal TERM"
 gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"
 
diff --git a/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp b/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
--- a/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
+++ b/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
@@ -58,7 +58,7 @@  proc connect_continue_ctrl_c {} {
     }
 
     after 1000 {send_gdb "\003"}
-    gdb_test "" "Program received signal SIGINT.*" "stop with control-c"
+    gdb_test "" "(Program|Thread .*) received signal SIGINT.*" "stop with control-c"
 }
 
 with_test_prefix "first" {
diff --git a/gdb/testsuite/gdb.server/solib-list.exp b/gdb/testsuite/gdb.server/solib-list.exp
--- a/gdb/testsuite/gdb.server/solib-list.exp
+++ b/gdb/testsuite/gdb.server/solib-list.exp
@@ -99,7 +99,7 @@  foreach nonstop { 0 1 } { with_test_pref
 	}
     }
 
-    gdb_test "continue" "Program received signal SIGUSR1, .*"
+    gdb_test "continue" "(Program|Thread .*) received signal SIGUSR1, .*"
     gdb_test "sharedlibrary" ".*"
     gdb_test "p libvar" " = 23"
 }}
diff --git a/gdb/testsuite/gdb.trace/trace-condition.exp b/gdb/testsuite/gdb.trace/trace-condition.exp
--- a/gdb/testsuite/gdb.trace/trace-condition.exp
+++ b/gdb/testsuite/gdb.trace/trace-condition.exp
@@ -99,7 +99,7 @@  proc test_tracepoints { trace_command co
 	    -re ".*Breakpoint \[0-9\]+, end .*$gdb_prompt $" {
 		pass "advance through tracing"
 	    }
-	    -re "Program received signal SIGSEGV, Segmentation fault\\..*$gdb_prompt $" {
+	    -re "(Program|Thread .*) received signal SIGSEGV, Segmentation fault\\..*$gdb_prompt $" {
 		if { $kfail_proc != 0 } {
 		    $kfail_proc $trace_command
 		}