1 /* This testcase is part of GDB, the GNU debugger.
3 Copyright 2009-2023 Free Software Foundation, Inc.
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
22 /* Signal handlers, we set breakpoints in them to make sure that the
23 signals really get delivered. */
101 handle_TTIN (int sig
)
106 handle_TTOU (int sig
)
116 handle_XCPU (int sig
)
121 handle_XFSZ (int sig
)
126 handle_VTALRM (int sig
)
131 handle_PROF (int sig
)
136 handle_WINCH (int sig
)
141 handle_LOST (int sig
)
146 handle_USR1 (int sig
)
151 handle_USR2 (int sig
)
161 handle_POLL (int sig
)
166 handle_WIND (int sig
)
171 handle_PHONE (int sig
)
176 handle_WAITING (int sig
)
186 handle_DANGER (int sig
)
191 handle_GRANT (int sig
)
196 handle_RETRACT (int sig
)
206 handle_SOUND (int sig
)
216 handle_PRIO (int sig
)
376 handle_TERM (int sig
)
380 /* Functions to send signals. These also serve as markers.
381 Ordered ANSI-standard signals first, other signals second,
382 with signals in each block ordered by their numerical values
383 on a typical POSIX platform. */
385 /* SIGINT, SIGILL, SIGABRT, SIGFPE, SIGSEGV and SIGTERM
386 are ANSI-standard signals and are always available. */
391 kill (getpid (), SIGILL
);
398 kill (getpid (), SIGABRT
);
407 /* The intent behind generating SIGFPE this way is to check the mapping
408 from the CPU exception itself to the signals. It would be nice to
409 do the same for SIGBUS, SIGSEGV, etc., but I suspect that even this
410 test might turn out to be insufficiently portable. */
413 /* Loses on the PA because after the signal handler executes we try to
414 re-execute the failing instruction again. Perhaps we could siglongjmp
415 out of the signal handler? */
416 /* The expect script looks for the word "kill"; don't delete it. */
417 return 5 / x
; /* and we both started jumping up and down yelling kill */
419 kill (getpid (), SIGFPE
);
427 kill (getpid (), SIGSEGV
);
434 kill (getpid (), SIGTERM
);
438 /* All other signals need preprocessor conditionals. */
444 kill (getpid (), SIGHUP
);
455 kill (getpid (), SIGQUIT
);
466 kill (getpid (), SIGEMT
);
477 kill (getpid (), SIGBUS
);
488 kill (getpid (), SIGSYS
);
499 kill (getpid (), SIGPIPE
);
510 kill (getpid (), SIGALRM
);
521 kill (getpid (), SIGURG
);
532 kill (getpid (), SIGTSTP
);
543 kill (getpid (), SIGCONT
);
554 kill (getpid (), SIGCHLD
);
565 kill (getpid (), SIGTTIN
);
576 kill (getpid (), SIGTTOU
);
587 kill (getpid (), SIGIO
);
598 kill (getpid (), SIGXCPU
);
609 kill (getpid (), SIGXFSZ
);
620 kill (getpid (), SIGVTALRM
);
631 kill (getpid (), SIGPROF
);
642 kill (getpid (), SIGWINCH
);
652 #if defined(SIGLOST) && SIGLOST != SIGABRT
653 kill (getpid (), SIGLOST
);
664 kill (getpid (), SIGUSR1
);
675 kill (getpid (), SIGUSR2
);
686 kill (getpid (), SIGPWR
);
696 #if defined (SIGPOLL) && (!defined (SIGIO) || SIGPOLL != SIGIO)
697 kill (getpid (), SIGPOLL
);
708 kill (getpid (), SIGWIND
);
719 kill (getpid (), SIGPHONE
);
730 kill (getpid (), SIGWAITING
);
741 kill (getpid (), SIGLWP
);
752 kill (getpid (), SIGDANGER
);
763 kill (getpid (), SIGGRANT
);
774 kill (getpid (), SIGRETRACT
);
785 kill (getpid (), SIGMSG
);
796 kill (getpid (), SIGSOUND
);
807 kill (getpid (), SIGSAK
);
818 kill (getpid (), SIGPRIO
);
829 kill (getpid (), 33);
840 kill (getpid (), 34);
851 kill (getpid (), 35);
862 kill (getpid (), 36);
873 kill (getpid (), 37);
884 kill (getpid (), 38);
895 kill (getpid (), 39);
906 kill (getpid (), 40);
917 kill (getpid (), 41);
928 kill (getpid (), 42);
939 kill (getpid (), 43);
950 kill (getpid (), 44);
961 kill (getpid (), 45);
972 kill (getpid (), 46);
983 kill (getpid (), 47);
994 kill (getpid (), 48);
1005 kill (getpid (), 49);
1016 kill (getpid (), 50);
1027 kill (getpid (), 51);
1038 kill (getpid (), 52);
1049 kill (getpid (), 53);
1060 kill (getpid (), 54);
1071 kill (getpid (), 55);
1082 kill (getpid (), 56);
1093 kill (getpid (), 57);
1104 kill (getpid (), 58);
1115 kill (getpid (), 59);
1126 kill (getpid (), 60);
1137 kill (getpid (), 61);
1148 kill (getpid (), 62);
1159 kill (getpid (), 63);
1170 /* Ensure all the signals aren't blocked.
1171 The environment in which the testsuite is run may have blocked some
1172 for whatever reason. */
1175 sigemptyset (&newset
);
1176 sigprocmask (SIG_SETMASK
, &newset
, NULL
);
1180 /* Signals are ordered ANSI-standard signals first, other signals
1181 second, with signals in each block ordered by their numerical
1182 values on a typical POSIX platform. */
1184 /* SIGINT, SIGILL, SIGABRT, SIGFPE, SIGSEGV and SIGTERM
1185 are ANSI-standard signals and are always available. */
1186 signal (SIGILL
, handle_ILL
);
1187 signal (SIGABRT
, handle_ABRT
);
1188 signal (SIGFPE
, handle_FPE
);
1189 signal (SIGSEGV
, handle_SEGV
);
1190 signal (SIGTERM
, handle_TERM
);
1192 /* All other signals need preprocessor conditionals. */
1194 signal (SIGHUP
, handle_HUP
);
1197 signal (SIGQUIT
, handle_QUIT
);
1200 signal (SIGEMT
, handle_EMT
);
1203 signal (SIGBUS
, handle_BUS
);
1206 signal (SIGSYS
, handle_SYS
);
1209 signal (SIGPIPE
, handle_PIPE
);
1212 signal (SIGALRM
, handle_ALRM
);
1215 signal (SIGURG
, handle_URG
);
1218 signal (SIGTSTP
, handle_TSTP
);
1221 signal (SIGCONT
, handle_CONT
);
1224 signal (SIGCHLD
, handle_CHLD
);
1227 signal (SIGTTIN
, handle_TTIN
);
1230 signal (SIGTTOU
, handle_TTOU
);
1233 signal (SIGIO
, handle_IO
);
1236 signal (SIGXCPU
, handle_XCPU
);
1239 signal (SIGXFSZ
, handle_XFSZ
);
1242 signal (SIGVTALRM
, handle_VTALRM
);
1245 signal (SIGPROF
, handle_PROF
);
1248 signal (SIGWINCH
, handle_WINCH
);
1250 #if defined(SIGLOST) && SIGLOST != SIGABRT
1251 signal (SIGLOST
, handle_LOST
);
1254 signal (SIGUSR1
, handle_USR1
);
1257 signal (SIGUSR2
, handle_USR2
);
1260 signal (SIGPWR
, handle_PWR
);
1262 #if defined (SIGPOLL) && (!defined (SIGIO) || SIGPOLL != SIGIO)
1263 signal (SIGPOLL
, handle_POLL
);
1266 signal (SIGWIND
, handle_WIND
);
1269 signal (SIGPHONE
, handle_PHONE
);
1272 signal (SIGWAITING
, handle_WAITING
);
1275 signal (SIGLWP
, handle_LWP
);
1278 signal (SIGDANGER
, handle_DANGER
);
1281 signal (SIGGRANT
, handle_GRANT
);
1284 signal (SIGRETRACT
, handle_RETRACT
);
1287 signal (SIGMSG
, handle_MSG
);
1290 signal (SIGSOUND
, handle_SOUND
);
1293 signal (SIGSAK
, handle_SAK
);
1296 signal (SIGPRIO
, handle_PRIO
);
1299 /* Lynx doesn't seem to have anything in signal.h for this. */
1300 signal (33, handle_33
);
1301 signal (34, handle_34
);
1302 signal (35, handle_35
);
1303 signal (36, handle_36
);
1304 signal (37, handle_37
);
1305 signal (38, handle_38
);
1306 signal (39, handle_39
);
1307 signal (40, handle_40
);
1308 signal (41, handle_41
);
1309 signal (42, handle_42
);
1310 signal (43, handle_43
);
1311 signal (44, handle_44
);
1312 signal (45, handle_45
);
1313 signal (46, handle_46
);
1314 signal (47, handle_47
);
1315 signal (48, handle_48
);
1316 signal (49, handle_49
);
1317 signal (50, handle_50
);
1318 signal (51, handle_51
);
1319 signal (52, handle_52
);
1320 signal (53, handle_53
);
1321 signal (54, handle_54
);
1322 signal (55, handle_55
);
1323 signal (56, handle_56
);
1324 signal (57, handle_57
);
1325 signal (58, handle_58
);
1326 signal (59, handle_59
);
1327 signal (60, handle_60
);
1328 signal (61, handle_61
);
1329 signal (62, handle_62
);
1330 signal (63, handle_63
);
1407 return 0; /* end of main */