Updated. Thanks! Pedro Alves writes: > On 5/17/19 6:14 PM, Amos Bird wrote: >> } else { >> gdb_test_multiple "signal SIGTRAP" "signal sent" { >> - -re ".*\032\032post-prompt\r\nContinuing with signal >> SIGTRAP.\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)+\r\n\r\n\032\032signalled\r\n\r\nProgram >> terminated with signal >> \r\n\032\032signal-name\r\nSIGTRAP\r\n\032\032signal-name-end\r\n, >> \r\n\032\032signal-string\r\nTrace.breakpoint >> trap\r\n\032\032signal-string-end\r\n.\r\nThe program no longer >> exists.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" { >> +-re ".*\032\032post-prompt\r\nContinuing with signal >> SIGTRAP.\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)+\r\n\r\n\032\032signalled\r\n\r\nProgram >> terminated with signal >> \r\n\032\032signal-name\r\nSIGTRAP\r\n\032\032signal-name-end\r\n, >> \r\n\032\032signal-string\r\nTrace.breakpoint >> trap\r\n\032\032signal-string-end\r\n.\r\nThe program no longer >> exists.\r\n\r\n\032\032thread-exited,id=\"${decimal}\",group-id=\"i${decimal}\"\r\n\r\n\032\032stopped\r\n$gdb_prompt$" >> { >> pass "signal sent" > > That lost the tab before "-re" -- was that on purpose? > > >> } >> } >> @@ -450,6 +450,7 @@ if { [remote_file host exists core] } { >> proc thread_test {} { >> global subdir srcdir testfile srcfile binfile >> global gdb_prompt old_gdb_prompt >> + global decimal >> set srcfile watch_thread_num.c >> set binfile [standard_output_file >> ${testfile}-watch_thread_num] >> set gdb_prompt $old_gdb_prompt >> @@ -468,6 +469,9 @@ proc thread_test {} { >> set linenum [gdb_get_line_number "all threads started"] >> gdb_breakpoint "$linenum" >> >> + set linenum [gdb_get_line_number "first child thread >> exited"] >> + gdb_breakpoint "$linenum" >> + >> set gdb_prompt \ >> "\r\n\032\032pre-prompt\r\n$gdb_prompt >> \r\n\032\032prompt\r\n" >> >> @@ -481,6 +485,12 @@ proc thread_test {} { >> pass "new thread" >> } >> } >> + >> + gdb_test_multiple "continue" "thread exit" { >> + -re >> "\032\032thread-exited,id=\"${decimal}\",group-id=\"i${decimal}\"" >> { >> + pass "thread exit" >> + } >> + } > > This should use the same indentation levels as the similar code > above. > > Also, this isn't expecting the prompt. Is there a reason for > that? > Not matching/expecting the prompt is usually not desired, > because it > leaves the prompt in the expect buffer, which can confuse > following > tests. > > Also, this causes some regressions: > > Running src/gdb/testsuite/gdb.cp/annota2.exp ... > FAIL: gdb.cp/annota2.exp: continue until exit (timeout) > FAIL: gdb.cp/annota2.exp: delete bps > FAIL: gdb.cp/annota2.exp: break at main (got interactive > prompt) > > Please take a look at those and make sure to run the whole > testsuite (I only ran the "gdb.*/annota*.exp" tests). > > Thanks, > Pedro Alves -- Amos Bird amosbird@gmail.com