xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.threads/killed.exp (revision 4439cfd0acf9c7dc90625e5cd83b2317a9ab8967)
1# Copyright 2002-2023 Free Software Foundation, Inc.
2
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation; either version 3 of the License, or
6# (at your option) any later version.
7#
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11# GNU General Public License for more details.
12#
13# You should have received a copy of the GNU General Public License
14# along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16# Please email any bugs, comments, and/or additions to this file to:
17# bug-gdb@gnu.org
18
19# This is a regression test for gdb/568 in the sources.redhat.com
20# GNATS database.  As of early June 2002, GDB could get sort of wedged
21# debugging the program `killed.c':
22#
23# $ $D6/gdb/gdb -nw killed
24# GNU gdb 2002-06-11-cvs
25# Copyright 2002 Free Software Foundation, Inc.
26# GDB is free software, covered by the GNU General Public License, and you are
27# welcome to change it and/or distribute copies of it under certain conditions.
28# Type "show copying" to see the conditions.
29# There is absolutely no warranty for GDB.  Type "show warranty" for details.
30# This GDB was configured as "i686-pc-linux-gnu"...
31# (gdb) run
32# Starting program: /home/jimb/foo/play/killed
33# [New Thread 1024 (LWP 6487)]
34# [New Thread 2049 (LWP 6488)]
35# [New Thread 1026 (LWP 6489)]
36# Cannot find user-level thread for LWP 6487: generic error
37# (gdb) quit
38# The program is running.  Exit anyway? (y or n) y
39# Cannot find thread 2049: generic error
40# (gdb) kill
41# Kill the program being debugged? (y or n) y
42# Cannot find thread 2049: generic error
43# (gdb) The program is running.  Exit anyway? (y or n) y
44# Cannot find thread 2049: generic error
45# (gdb)
46# [7]+  Stopped                 $D6/gdb/gdb -nw killed
47# $ kill %7
48#
49# [7]+  Stopped                 $D6/gdb/gdb -nw killed
50# $ kill -9 %7
51#
52# [7]+  Stopped                 $D6/gdb/gdb -nw killed
53# $
54# [7]+  Killed                  $D6/gdb/gdb -nw killed
55# $
56
57
58standard_testfile
59
60if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable debug] != "" } {
61    return -1
62}
63
64
65clean_restart ${binfile}
66
67gdb_run_cmd
68gdb_test "" "" "run program to completion"
69
70# Try to quit.
71send_gdb "quit\n"
72gdb_expect {
73    -re "Quit anyway\\? \\(y or n\\) $" {
74        send_gdb "y\n"
75        exp_continue
76    }
77    eof {
78        pass "GDB exits after multi-threaded program exits messily"
79    }
80    -re "Cannot find thread ${decimal}: generic error\[\r\n\]*$gdb_prompt $" {
81        kfail "gdb/568" "GDB exits after multi-threaded program exits messily"
82    }
83    timeout {
84        fail "GDB exits after multi-threaded program exits messily (timeout)"
85    }
86}
87