aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/annota1.exp
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2014-12-29 19:41:04 +0000
committerPedro Alves <palves@redhat.com>2015-01-09 13:58:29 +0000
commit9665ffdd591e9b374b4e5f6aeffe15541346140d (patch)
treea5bd5298c4046265f255a01b84bd1c29d6e92822 /gdb/testsuite/gdb.base/annota1.exp
parent400cf8cbe9bc48068f1601ea9cd33fbd2f5de36a (diff)
downloadgdb-9665ffdd591e9b374b4e5f6aeffe15541346140d.zip
gdb-9665ffdd591e9b374b4e5f6aeffe15541346140d.tar.gz
gdb-9665ffdd591e9b374b4e5f6aeffe15541346140d.tar.bz2
gdb.threads/{siginfo-thread.c,watchthreads-reorder.c,ia64-sigill.c} races with GDB
These three test all spawn a few threads and then send a SIGSTOP to their parent GDB in order to pause it while the new threads set things up for the test. With a GDB patch that changes the inferior thread's scheduling a bit, I sometimes see: FAIL: gdb.threads/siginfo-threads.exp: catch signal 0 (timeout) ... FAIL: gdb.threads/watchthreads-reorder.exp: reorder1: continue a (timeout) ... FAIL: gdb.threads/ia64-sigill.exp: continue (timeout) ... The issue is that the test program stops GDB before it had a chance of processing the new thread's clone event: (gdb) PASS: gdb.threads/siginfo-threads.exp: get pid continue Continuing. Stopping GDB PID 21541. Waiting till the threads initialize their TIDs. FAIL: gdb.threads/siginfo-threads.exp: catch signal 0 (timeout) On Linux (at least), new threads start stopped, and the debugger must resume them. The fix is to make the test program wait for the new threads to be running before stopping GDB. gdb/testsuite/ 2015-01-09 Pedro Alves <palves@redhat.com> * gdb.threads/ia64-sigill.c (threads_started_barrier): New global. (thread_func): Wait on barrier. (main): Wait for all threads to start before stopping GDB. * gdb.threads/siginfo-threads.c (threads_started_barrier): New global. (thread1_func, thread2_func): Wait on barrier. (main): Wait for all threads to start before stopping GDB. * gdb.threads/watchthreads-reorder.c (threads_started_barrier): New global. (thread1_func, thread2_func): Wait on barrier. (main): Wait for all threads to start before stopping GDB.
Diffstat (limited to 'gdb/testsuite/gdb.base/annota1.exp')
0 files changed, 0 insertions, 0 deletions