Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* RFA: test GDB's ability to kill threaded programs that die messily
@ 2002-06-12 13:16 Jim Blandy
  2002-06-12 15:45 ` Michael Snyder
  0 siblings, 1 reply; 8+ messages in thread
From: Jim Blandy @ 2002-06-12 13:16 UTC (permalink / raw)
  To: gdb-patches


This tests the bug reported in gdb/568.

2002-06-12  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/killed.exp, gdb.threads/killed.c: New test.

Index: gdb/testsuite/gdb.threads/killed.c
===================================================================
RCS file: gdb/testsuite/gdb.threads/killed.c
diff -N gdb/testsuite/gdb.threads/killed.c
*** gdb/testsuite/gdb.threads/killed.c	1 Jan 1970 00:00:00 -0000
--- gdb/testsuite/gdb.threads/killed.c	12 Jun 2002 20:13:32 -0000
***************
*** 0 ****
--- 1,24 ----
+ #include <sys/types.h>
+ #include <signal.h>
+ #include <pthread.h>
+ #include <stdio.h>
+ 
+ int pid;
+ 
+ void *
+ child_func (void *dummy)
+ {
+   kill (pid, SIGKILL);
+   exit (1);
+ }
+ 
+ int
+ main ()
+ {
+   pthread_t child;
+ 
+   pid = getpid ();
+   pthread_create (&child, 0, child_func, 0);
+   for (;;)
+     sleep (10000);
+ }
Index: gdb/testsuite/gdb.threads/killed.exp
===================================================================
RCS file: gdb/testsuite/gdb.threads/killed.exp
diff -N gdb/testsuite/gdb.threads/killed.exp
*** gdb/testsuite/gdb.threads/killed.exp	1 Jan 1970 00:00:00 -0000
--- gdb/testsuite/gdb.threads/killed.exp	12 Jun 2002 20:13:32 -0000
***************
*** 0 ****
--- 1,100 ----
+ # Copyright 2002 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+ 
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@gnu.org
+ 
+ # This is a regression test for gdb/568 in the sources.redhat.com
+ # GNATS database.  As of early June 2002, GDB could get sort of wedged
+ # debugging the program `killed.c':
+ #
+ # $ $D6/gdb/gdb -nw killed
+ # GNU gdb 2002-06-11-cvs
+ # Copyright 2002 Free Software Foundation, Inc.
+ # GDB is free software, covered by the GNU General Public License, and you are
+ # welcome to change it and/or distribute copies of it under certain conditions.
+ # Type "show copying" to see the conditions.
+ # There is absolutely no warranty for GDB.  Type "show warranty" for details.
+ # This GDB was configured as "i686-pc-linux-gnu"...
+ # (gdb) run
+ # Starting program: /home/jimb/morganstanley/play/killed 
+ # [New Thread 1024 (LWP 6487)]
+ # [New Thread 2049 (LWP 6488)]
+ # [New Thread 1026 (LWP 6489)]
+ # Cannot find user-level thread for LWP 6487: generic error
+ # (gdb) quit
+ # The program is running.  Exit anyway? (y or n) y
+ # Cannot find thread 2049: generic error
+ # (gdb) kill
+ # Kill the program being debugged? (y or n) y
+ # Cannot find thread 2049: generic error
+ # (gdb) The program is running.  Exit anyway? (y or n) y
+ # Cannot find thread 2049: generic error
+ # (gdb) 
+ # [7]+  Stopped                 $D6/gdb/gdb -nw killed
+ # $ kill %7
+ # 
+ # [7]+  Stopped                 $D6/gdb/gdb -nw killed
+ # $ kill -9 %7
+ # 
+ # [7]+  Stopped                 $D6/gdb/gdb -nw killed
+ # $ 
+ # [7]+  Killed                  $D6/gdb/gdb -nw killed
+ # $ 
+ 
+ if $tracelevel then {
+ 	strace $tracelevel
+ }
+ 
+ set prms_id 0
+ set bug_id 0
+ 
+ # This only works with Linux configurations.
+ if ![istarget *-*-linux-gnu] then {
+     return
+ }
+ 
+ set testfile "killed"
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+ if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug libs=-lpthread}] != ""} {
+     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+ 
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ 
+ gdb_test "run" "" "run program to completion"
+ 
+ # Try to quit.
+ send_gdb "quit\n"
+ gdb_expect {
+     -re "The program is running.  Exit anyway\\? \\(y or n\\) $" {
+         send_gdb "y\n"
+         exp_continue
+     }
+     eof {
+         pass "GDB exits after multi-threaded program exits messily"
+     }
+     -re "Cannot find thread ${decimal}: generic error\[\r\n\]*$gdb_prompt $" {
+         # setup_kfail "gdb/568"
+         fail "GDB exits after multi-threaded program exits messily (gdb/568)"
+     }
+     timeout {
+         fail "GDB exits after multi-threaded program exits messily (timeout)"
+     }
+ }


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: test GDB's ability to kill threaded programs that die messily
  2002-06-12 13:16 RFA: test GDB's ability to kill threaded programs that die messily Jim Blandy
@ 2002-06-12 15:45 ` Michael Snyder
  2002-06-12 17:31   ` Jim Blandy
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Snyder @ 2002-06-12 15:45 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

Jim Blandy wrote:
> 
> This tests the bug reported in gdb/568.
> 
> 2002-06-12  Jim Blandy  <jimb@redhat.com>
> 
>         * gdb.threads/killed.exp, gdb.threads/killed.c: New test.

Why run it only on linux?  It might pass perfectly well on other
systems -- and if not, it's a bug there too, which we might want
to know.


> Index: gdb/testsuite/gdb.threads/killed.c
> ===================================================================
> RCS file: gdb/testsuite/gdb.threads/killed.c
> diff -N gdb/testsuite/gdb.threads/killed.c
> *** gdb/testsuite/gdb.threads/killed.c  1 Jan 1970 00:00:00 -0000
> --- gdb/testsuite/gdb.threads/killed.c  12 Jun 2002 20:13:32 -0000
> ***************
> *** 0 ****
> --- 1,24 ----
> + #include <sys/types.h>
> + #include <signal.h>
> + #include <pthread.h>
> + #include <stdio.h>
> +
> + int pid;
> +
> + void *
> + child_func (void *dummy)
> + {
> +   kill (pid, SIGKILL);
> +   exit (1);
> + }
> +
> + int
> + main ()
> + {
> +   pthread_t child;
> +
> +   pid = getpid ();
> +   pthread_create (&child, 0, child_func, 0);
> +   for (;;)
> +     sleep (10000);
> + }
> Index: gdb/testsuite/gdb.threads/killed.exp
> ===================================================================
> RCS file: gdb/testsuite/gdb.threads/killed.exp
> diff -N gdb/testsuite/gdb.threads/killed.exp
> *** gdb/testsuite/gdb.threads/killed.exp        1 Jan 1970 00:00:00 -0000
> --- gdb/testsuite/gdb.threads/killed.exp        12 Jun 2002 20:13:32 -0000
> ***************
> *** 0 ****
> --- 1,100 ----
> + # Copyright 2002 Free Software Foundation, Inc.
> +
> + # This program is free software; you can redistribute it and/or modify
> + # it under the terms of the GNU General Public License as published by
> + # the Free Software Foundation; either version 2 of the License, or
> + # (at your option) any later version.
> + #
> + # This program is distributed in the hope that it will be useful,
> + # but WITHOUT ANY WARRANTY; without even the implied warranty of
> + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + # GNU General Public License for more details.
> + #
> + # You should have received a copy of the GNU General Public License
> + # along with this program; if not, write to the Free Software
> + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
> +
> + # Please email any bugs, comments, and/or additions to this file to:
> + # bug-gdb@gnu.org
> +
> + # This is a regression test for gdb/568 in the sources.redhat.com
> + # GNATS database.  As of early June 2002, GDB could get sort of wedged
> + # debugging the program `killed.c':
> + #
> + # $ $D6/gdb/gdb -nw killed
> + # GNU gdb 2002-06-11-cvs
> + # Copyright 2002 Free Software Foundation, Inc.
> + # GDB is free software, covered by the GNU General Public License, and you are
> + # welcome to change it and/or distribute copies of it under certain conditions.
> + # Type "show copying" to see the conditions.
> + # There is absolutely no warranty for GDB.  Type "show warranty" for details.
> + # This GDB was configured as "i686-pc-linux-gnu"...
> + # (gdb) run
> + # Starting program: /home/jimb/morganstanley/play/killed
> + # [New Thread 1024 (LWP 6487)]
> + # [New Thread 2049 (LWP 6488)]
> + # [New Thread 1026 (LWP 6489)]
> + # Cannot find user-level thread for LWP 6487: generic error
> + # (gdb) quit
> + # The program is running.  Exit anyway? (y or n) y
> + # Cannot find thread 2049: generic error
> + # (gdb) kill
> + # Kill the program being debugged? (y or n) y
> + # Cannot find thread 2049: generic error
> + # (gdb) The program is running.  Exit anyway? (y or n) y
> + # Cannot find thread 2049: generic error
> + # (gdb)
> + # [7]+  Stopped                 $D6/gdb/gdb -nw killed
> + # $ kill %7
> + #
> + # [7]+  Stopped                 $D6/gdb/gdb -nw killed
> + # $ kill -9 %7
> + #
> + # [7]+  Stopped                 $D6/gdb/gdb -nw killed
> + # $
> + # [7]+  Killed                  $D6/gdb/gdb -nw killed
> + # $
> +
> + if $tracelevel then {
> +       strace $tracelevel
> + }
> +
> + set prms_id 0
> + set bug_id 0
> +
> + # This only works with Linux configurations.
> + if ![istarget *-*-linux-gnu] then {
> +     return
> + }
> +
> + set testfile "killed"
> + set srcfile ${testfile}.c
> + set binfile ${objdir}/${subdir}/${testfile}
> + if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug libs=-lpthread}] != ""} {
> +     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
> + }
> +
> + gdb_start
> + gdb_reinitialize_dir $srcdir/$subdir
> + gdb_load ${binfile}
> +
> + gdb_test "run" "" "run program to completion"
> +
> + # Try to quit.
> + send_gdb "quit\n"
> + gdb_expect {
> +     -re "The program is running.  Exit anyway\\? \\(y or n\\) $" {
> +         send_gdb "y\n"
> +         exp_continue
> +     }
> +     eof {
> +         pass "GDB exits after multi-threaded program exits messily"
> +     }
> +     -re "Cannot find thread ${decimal}: generic error\[\r\n\]*$gdb_prompt $" {
> +         # setup_kfail "gdb/568"
> +         fail "GDB exits after multi-threaded program exits messily (gdb/568)"
> +     }
> +     timeout {
> +         fail "GDB exits after multi-threaded program exits messily (timeout)"
> +     }
> + }


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: test GDB's ability to kill threaded programs that die messily
  2002-06-12 15:45 ` Michael Snyder
@ 2002-06-12 17:31   ` Jim Blandy
  2002-06-12 18:13     ` Michael Snyder
  0 siblings, 1 reply; 8+ messages in thread
From: Jim Blandy @ 2002-06-12 17:31 UTC (permalink / raw)
  To: Michael Snyder; +Cc: gdb-patches


Michael Snyder <msnyder@redhat.com> writes:
> Jim Blandy wrote:
> > 
> > This tests the bug reported in gdb/568.
> > 
> > 2002-06-12  Jim Blandy  <jimb@redhat.com>
> > 
> >         * gdb.threads/killed.exp, gdb.threads/killed.c: New test.
> 
> Why run it only on linux?  It might pass perfectly well on other
> systems -- and if not, it's a bug there too, which we might want
> to know.

Definitely.  I thought the link process (-lpthread) was linux-only.
Can we write portable code in the test suite that builds
multi-threaded programs?


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: test GDB's ability to kill threaded programs that die messily
  2002-06-12 17:31   ` Jim Blandy
@ 2002-06-12 18:13     ` Michael Snyder
  2002-06-13 10:48       ` Jim Blandy
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Snyder @ 2002-06-12 18:13 UTC (permalink / raw)
  To: Jim Blandy, gdb-patches

Jim Blandy wrote:
> 
> Michael Snyder <msnyder@redhat.com> writes:
> > Jim Blandy wrote:
> > >
> > > This tests the bug reported in gdb/568.
> > >
> > > 2002-06-12  Jim Blandy  <jimb@redhat.com>
> > >
> > >         * gdb.threads/killed.exp, gdb.threads/killed.c: New test.
> >
> > Why run it only on linux?  It might pass perfectly well on other
> > systems -- and if not, it's a bug there too, which we might want
> > to know.
> 
> Definitely.  I thought the link process (-lpthread) was linux-only.
> Can we write portable code in the test suite that builds
> multi-threaded programs?

We already have -- see pthread.exp


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: test GDB's ability to kill threaded programs that die messily
  2002-06-12 18:13     ` Michael Snyder
@ 2002-06-13 10:48       ` Jim Blandy
  2002-09-10 17:24         ` Michael Snyder
  0 siblings, 1 reply; 8+ messages in thread
From: Jim Blandy @ 2002-06-13 10:48 UTC (permalink / raw)
  To: Michael Snyder; +Cc: gdb-patches


Michael Snyder <msnyder@redhat.com> writes:
> Jim Blandy wrote:
> > Michael Snyder <msnyder@redhat.com> writes:
> > > Jim Blandy wrote:
> > > >
> > > > This tests the bug reported in gdb/568.
> > > >
> > > > 2002-06-12  Jim Blandy  <jimb@redhat.com>
> > > >
> > > >         * gdb.threads/killed.exp, gdb.threads/killed.c: New test.
> > >
> > > Why run it only on linux?  It might pass perfectly well on other
> > > systems -- and if not, it's a bug there too, which we might want
> > > to know.
> > 
> > Definitely.  I thought the link process (-lpthread) was linux-only.
> > Can we write portable code in the test suite that builds
> > multi-threaded programs?
> 
> We already have -- see pthread.exp

Here's a revision of the patch, which uses the gdb_compile_pthreads
function introduced by the last patch I posted ("RFA: abstract out
thread compilation code").  It no longer refuses to run on anything
but Linux.

2002-06-12  Jim Blandy  <jimb@redhat.com>

	* gdb.threads/killed.exp, gdb.threads/killed.c: New test.

Index: gdb/testsuite/gdb.threads/killed.exp
===================================================================
RCS file: gdb/testsuite/gdb.threads/killed.exp
diff -N gdb/testsuite/gdb.threads/killed.exp
*** gdb/testsuite/gdb.threads/killed.exp	1 Jan 1970 00:00:00 -0000
--- gdb/testsuite/gdb.threads/killed.exp	13 Jun 2002 17:46:54 -0000
***************
*** 0 ****
--- 1,97 ----
+ # Copyright 2002 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+ 
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@gnu.org
+ 
+ # This is a regression test for gdb/568 in the sources.redhat.com
+ # GNATS database.  As of early June 2002, GDB could get sort of wedged
+ # debugging the program `killed.c':
+ #
+ # $ $D6/gdb/gdb -nw killed
+ # GNU gdb 2002-06-11-cvs
+ # Copyright 2002 Free Software Foundation, Inc.
+ # GDB is free software, covered by the GNU General Public License, and you are
+ # welcome to change it and/or distribute copies of it under certain conditions.
+ # Type "show copying" to see the conditions.
+ # There is absolutely no warranty for GDB.  Type "show warranty" for details.
+ # This GDB was configured as "i686-pc-linux-gnu"...
+ # (gdb) run
+ # Starting program: /home/jimb/morganstanley/play/killed 
+ # [New Thread 1024 (LWP 6487)]
+ # [New Thread 2049 (LWP 6488)]
+ # [New Thread 1026 (LWP 6489)]
+ # Cannot find user-level thread for LWP 6487: generic error
+ # (gdb) quit
+ # The program is running.  Exit anyway? (y or n) y
+ # Cannot find thread 2049: generic error
+ # (gdb) kill
+ # Kill the program being debugged? (y or n) y
+ # Cannot find thread 2049: generic error
+ # (gdb) The program is running.  Exit anyway? (y or n) y
+ # Cannot find thread 2049: generic error
+ # (gdb) 
+ # [7]+  Stopped                 $D6/gdb/gdb -nw killed
+ # $ kill %7
+ # 
+ # [7]+  Stopped                 $D6/gdb/gdb -nw killed
+ # $ kill -9 %7
+ # 
+ # [7]+  Stopped                 $D6/gdb/gdb -nw killed
+ # $ 
+ # [7]+  Killed                  $D6/gdb/gdb -nw killed
+ # $ 
+ 
+ if $tracelevel then {
+ 	strace $tracelevel
+ }
+ 
+ set prms_id 0
+ set bug_id 0
+ 
+ set testfile "killed"
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+ 
+ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}/${subdir}"]] != "" } {
+     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+ 
+ 
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ 
+ gdb_test "run" "" "run program to completion"
+ 
+ # Try to quit.
+ send_gdb "quit\n"
+ gdb_expect {
+     -re "The program is running.  Exit anyway\\? \\(y or n\\) $" {
+         send_gdb "y\n"
+         exp_continue
+     }
+     eof {
+         pass "GDB exits after multi-threaded program exits messily"
+     }
+     -re "Cannot find thread ${decimal}: generic error\[\r\n\]*$gdb_prompt $" {
+         # setup_kfail "gdb/568"
+         fail "GDB exits after multi-threaded program exits messily (gdb/568)"
+     }
+     timeout {
+         fail "GDB exits after multi-threaded program exits messily (timeout)"
+     }
+ }
Index: gdb/testsuite/gdb.threads/killed.c
===================================================================
RCS file: gdb/testsuite/gdb.threads/killed.c
diff -N gdb/testsuite/gdb.threads/killed.c
*** gdb/testsuite/gdb.threads/killed.c	1 Jan 1970 00:00:00 -0000
--- gdb/testsuite/gdb.threads/killed.c	13 Jun 2002 17:46:54 -0000
***************
*** 0 ****
--- 1,24 ----
+ #include <sys/types.h>
+ #include <signal.h>
+ #include <pthread.h>
+ #include <stdio.h>
+ 
+ int pid;
+ 
+ void *
+ child_func (void *dummy)
+ {
+   kill (pid, SIGKILL);
+   exit (1);
+ }
+ 
+ int
+ main ()
+ {
+   pthread_t child;
+ 
+   pid = getpid ();
+   pthread_create (&child, 0, child_func, 0);
+   for (;;)
+     sleep (10000);
+ }


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: test GDB's ability to kill threaded programs that die messily
  2002-06-13 10:48       ` Jim Blandy
@ 2002-09-10 17:24         ` Michael Snyder
  2002-09-12 14:00           ` Jim Blandy
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Snyder @ 2002-09-10 17:24 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

Jim Blandy wrote:
> 
> Michael Snyder <msnyder@redhat.com> writes:
> > Jim Blandy wrote:
> > > Michael Snyder <msnyder@redhat.com> writes:
> > > > Jim Blandy wrote:
> > > > >
> > > > > This tests the bug reported in gdb/568.
> > > > >
> > > > > 2002-06-12  Jim Blandy  <jimb@redhat.com>
> > > > >
> > > > >         * gdb.threads/killed.exp, gdb.threads/killed.c: New test.
> > > >
> > > > Why run it only on linux?  It might pass perfectly well on other
> > > > systems -- and if not, it's a bug there too, which we might want
> > > > to know.
> > >
> > > Definitely.  I thought the link process (-lpthread) was linux-only.
> > > Can we write portable code in the test suite that builds
> > > multi-threaded programs?
> >
> > We already have -- see pthread.exp
> 
> Here's a revision of the patch, which uses the gdb_compile_pthreads
> function introduced by the last patch I posted ("RFA: abstract out
> thread compilation code").  It no longer refuses to run on anything
> but Linux.

Belatedly approved.  Check it in?

> 
> 2002-06-12  Jim Blandy  <jimb@redhat.com>
> 
>         * gdb.threads/killed.exp, gdb.threads/killed.c: New test.
> 
> Index: gdb/testsuite/gdb.threads/killed.exp
> ===================================================================
> RCS file: gdb/testsuite/gdb.threads/killed.exp
> diff -N gdb/testsuite/gdb.threads/killed.exp
> *** gdb/testsuite/gdb.threads/killed.exp        1 Jan 1970 00:00:00 -0000
> --- gdb/testsuite/gdb.threads/killed.exp        13 Jun 2002 17:46:54 -0000
> ***************
> *** 0 ****
> --- 1,97 ----
> + # Copyright 2002 Free Software Foundation, Inc.
> +
> + # This program is free software; you can redistribute it and/or modify
> + # it under the terms of the GNU General Public License as published by
> + # the Free Software Foundation; either version 2 of the License, or
> + # (at your option) any later version.
> + #
> + # This program is distributed in the hope that it will be useful,
> + # but WITHOUT ANY WARRANTY; without even the implied warranty of
> + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + # GNU General Public License for more details.
> + #
> + # You should have received a copy of the GNU General Public License
> + # along with this program; if not, write to the Free Software
> + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
> +
> + # Please email any bugs, comments, and/or additions to this file to:
> + # bug-gdb@gnu.org
> +
> + # This is a regression test for gdb/568 in the sources.redhat.com
> + # GNATS database.  As of early June 2002, GDB could get sort of wedged
> + # debugging the program `killed.c':
> + #
> + # $ $D6/gdb/gdb -nw killed
> + # GNU gdb 2002-06-11-cvs
> + # Copyright 2002 Free Software Foundation, Inc.
> + # GDB is free software, covered by the GNU General Public License, and you are
> + # welcome to change it and/or distribute copies of it under certain conditions.
> + # Type "show copying" to see the conditions.
> + # There is absolutely no warranty for GDB.  Type "show warranty" for details.
> + # This GDB was configured as "i686-pc-linux-gnu"...
> + # (gdb) run
> + # Starting program: /home/jimb/morganstanley/play/killed
> + # [New Thread 1024 (LWP 6487)]
> + # [New Thread 2049 (LWP 6488)]
> + # [New Thread 1026 (LWP 6489)]
> + # Cannot find user-level thread for LWP 6487: generic error
> + # (gdb) quit
> + # The program is running.  Exit anyway? (y or n) y
> + # Cannot find thread 2049: generic error
> + # (gdb) kill
> + # Kill the program being debugged? (y or n) y
> + # Cannot find thread 2049: generic error
> + # (gdb) The program is running.  Exit anyway? (y or n) y
> + # Cannot find thread 2049: generic error
> + # (gdb)
> + # [7]+  Stopped                 $D6/gdb/gdb -nw killed
> + # $ kill %7
> + #
> + # [7]+  Stopped                 $D6/gdb/gdb -nw killed
> + # $ kill -9 %7
> + #
> + # [7]+  Stopped                 $D6/gdb/gdb -nw killed
> + # $
> + # [7]+  Killed                  $D6/gdb/gdb -nw killed
> + # $
> +
> + if $tracelevel then {
> +       strace $tracelevel
> + }
> +
> + set prms_id 0
> + set bug_id 0
> +
> + set testfile "killed"
> + set srcfile ${testfile}.c
> + set binfile ${objdir}/${subdir}/${testfile}
> +
> + if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}/${subdir}"]] != "" } {
> +     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
> + }
> +
> +
> + gdb_start
> + gdb_reinitialize_dir $srcdir/$subdir
> + gdb_load ${binfile}
> +
> + gdb_test "run" "" "run program to completion"
> +
> + # Try to quit.
> + send_gdb "quit\n"
> + gdb_expect {
> +     -re "The program is running.  Exit anyway\\? \\(y or n\\) $" {
> +         send_gdb "y\n"
> +         exp_continue
> +     }
> +     eof {
> +         pass "GDB exits after multi-threaded program exits messily"
> +     }
> +     -re "Cannot find thread ${decimal}: generic error\[\r\n\]*$gdb_prompt $" {
> +         # setup_kfail "gdb/568"
> +         fail "GDB exits after multi-threaded program exits messily (gdb/568)"
> +     }
> +     timeout {
> +         fail "GDB exits after multi-threaded program exits messily (timeout)"
> +     }
> + }
> Index: gdb/testsuite/gdb.threads/killed.c
> ===================================================================
> RCS file: gdb/testsuite/gdb.threads/killed.c
> diff -N gdb/testsuite/gdb.threads/killed.c
> *** gdb/testsuite/gdb.threads/killed.c  1 Jan 1970 00:00:00 -0000
> --- gdb/testsuite/gdb.threads/killed.c  13 Jun 2002 17:46:54 -0000
> ***************
> *** 0 ****
> --- 1,24 ----
> + #include <sys/types.h>
> + #include <signal.h>
> + #include <pthread.h>
> + #include <stdio.h>
> +
> + int pid;
> +
> + void *
> + child_func (void *dummy)
> + {
> +   kill (pid, SIGKILL);
> +   exit (1);
> + }
> +
> + int
> + main ()
> + {
> +   pthread_t child;
> +
> +   pid = getpid ();
> +   pthread_create (&child, 0, child_func, 0);
> +   for (;;)
> +     sleep (10000);
> + }


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: test GDB's ability to kill threaded programs that die messily
  2002-09-10 17:24         ` Michael Snyder
@ 2002-09-12 14:00           ` Jim Blandy
  2002-09-12 17:56             ` Michael Snyder
  0 siblings, 1 reply; 8+ messages in thread
From: Jim Blandy @ 2002-09-12 14:00 UTC (permalink / raw)
  To: Michael Snyder; +Cc: gdb-patches


Michael Snyder <msnyder@redhat.com> writes:
> Belatedly approved.  Check it in?

You already approved this, and it's already committed:

http://sources.redhat.com/ml/gdb-patches/2002-08/msg01055.html


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RFA: test GDB's ability to kill threaded programs that die messily
  2002-09-12 14:00           ` Jim Blandy
@ 2002-09-12 17:56             ` Michael Snyder
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Snyder @ 2002-09-12 17:56 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

Jim Blandy wrote:
> 
> Michael Snyder <msnyder@redhat.com> writes:
> > Belatedly approved.  Check it in?
> 
> You already approved this, and it's already committed:
> 
> http://sources.redhat.com/ml/gdb-patches/2002-08/msg01055.html

Ah, sorry.


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2002-09-13  0:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-06-12 13:16 RFA: test GDB's ability to kill threaded programs that die messily Jim Blandy
2002-06-12 15:45 ` Michael Snyder
2002-06-12 17:31   ` Jim Blandy
2002-06-12 18:13     ` Michael Snyder
2002-06-13 10:48       ` Jim Blandy
2002-09-10 17:24         ` Michael Snyder
2002-09-12 14:00           ` Jim Blandy
2002-09-12 17:56             ` Michael Snyder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox