1 /* This testcase is part of GDB, the GNU debugger.
3 Copyright 2009-2012 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. */
384 kill (getpid (), SIGABRT);
392 kill (getpid (), SIGHUP);
403 kill (getpid (), SIGQUIT);
414 kill (getpid (), SIGILL);
425 kill (getpid (), SIGEMT);
437 /* The intent behind generating SIGFPE this way is to check the mapping
438 from the CPU exception itself to the signals. It would be nice to
439 do the same for SIGBUS, SIGSEGV, etc., but I suspect that even this
440 test might turn out to be insufficiently portable. */
443 /* Loses on the PA because after the signal handler executes we try to
444 re-execute the failing instruction again. Perhaps we could siglongjmp
445 out of the signal handler? */
446 /* The expect script looks for the word "kill"; don't delete it. */
447 return 5 / x; /* and we both started jumping up and down yelling kill */
449 kill (getpid (), SIGFPE);
458 kill (getpid (), SIGBUS);
469 kill (getpid (), SIGSEGV);
480 kill (getpid (), SIGSYS);
491 kill (getpid (), SIGPIPE);
502 kill (getpid (), SIGALRM);
513 kill (getpid (), SIGURG);
524 kill (getpid (), SIGTSTP);
535 kill (getpid (), SIGCONT);
546 kill (getpid (), SIGCHLD);
557 kill (getpid (), SIGTTIN);
568 kill (getpid (), SIGTTOU);
579 kill (getpid (), SIGIO);
590 kill (getpid (), SIGXCPU);
601 kill (getpid (), SIGXFSZ);
612 kill (getpid (), SIGVTALRM);
623 kill (getpid (), SIGPROF);
634 kill (getpid (), SIGWINCH);
644 #if defined(SIGLOST) && (!defined(SIGABRT) || SIGLOST != SIGABRT)
645 kill (getpid (), SIGLOST);
656 kill (getpid (), SIGUSR1);
667 kill (getpid (), SIGUSR2);
678 kill (getpid (), SIGPWR);
688 #if defined (SIGPOLL) && (!defined (SIGIO) || SIGPOLL != SIGIO)
689 kill (getpid (), SIGPOLL);
700 kill (getpid (), SIGWIND);
711 kill (getpid (), SIGPHONE);
722 kill (getpid (), SIGWAITING);
733 kill (getpid (), SIGLWP);
744 kill (getpid (), SIGDANGER);
755 kill (getpid (), SIGGRANT);
766 kill (getpid (), SIGRETRACT);
777 kill (getpid (), SIGMSG);
788 kill (getpid (), SIGSOUND);
799 kill (getpid (), SIGSAK);
810 kill (getpid (), SIGPRIO);
821 kill (getpid (), 33);
832 kill (getpid (), 34);
843 kill (getpid (), 35);
854 kill (getpid (), 36);
865 kill (getpid (), 37);
876 kill (getpid (), 38);
887 kill (getpid (), 39);
898 kill (getpid (), 40);
909 kill (getpid (), 41);
920 kill (getpid (), 42);
931 kill (getpid (), 43);
942 kill (getpid (), 44);
953 kill (getpid (), 45);
964 kill (getpid (), 46);
975 kill (getpid (), 47);
986 kill (getpid (), 48);
997 kill (getpid (), 49);
1008 kill (getpid (), 50);
1019 kill (getpid (), 51);
1030 kill (getpid (), 52);
1041 kill (getpid (), 53);
1052 kill (getpid (), 54);
1063 kill (getpid (), 55);
1074 kill (getpid (), 56);
1085 kill (getpid (), 57);
1096 kill (getpid (), 58);
1107 kill (getpid (), 59);
1118 kill (getpid (), 60);
1129 kill (getpid (), 61);
1140 kill (getpid (), 62);
1151 kill (getpid (), 63);
1161 kill (getpid (), SIGTERM);
1169 /* Ensure all the signals aren't blocked.
1170 The environment in which the testsuite is run may have blocked some
1171 for whatever reason. */
1174 sigemptyset (&newset);
1175 sigprocmask (SIG_SETMASK, &newset, NULL);
1179 signal (SIGABRT, handle_ABRT);
1181 signal (SIGHUP, handle_HUP);
1184 signal (SIGQUIT, handle_QUIT);
1187 signal (SIGILL, handle_ILL);
1190 signal (SIGEMT, handle_EMT);
1193 signal (SIGFPE, handle_FPE);
1196 signal (SIGBUS, handle_BUS);
1199 signal (SIGSEGV, handle_SEGV);
1202 signal (SIGSYS, handle_SYS);
1205 signal (SIGPIPE, handle_PIPE);
1208 signal (SIGALRM, handle_ALRM);
1211 signal (SIGURG, handle_URG);
1214 signal (SIGTSTP, handle_TSTP);
1217 signal (SIGCONT, handle_CONT);
1220 signal (SIGCHLD, handle_CHLD);
1223 signal (SIGTTIN, handle_TTIN);
1226 signal (SIGTTOU, handle_TTOU);
1229 signal (SIGIO, handle_IO);
1232 signal (SIGXCPU, handle_XCPU);
1235 signal (SIGXFSZ, handle_XFSZ);
1238 signal (SIGVTALRM, handle_VTALRM);
1241 signal (SIGPROF, handle_PROF);
1244 signal (SIGWINCH, handle_WINCH);
1246 #if defined(SIGLOST) && (!defined(SIGABRT) || SIGLOST != SIGABRT)
1247 signal (SIGLOST, handle_LOST);
1250 signal (SIGUSR1, handle_USR1);
1253 signal (SIGUSR2, handle_USR2);
1256 signal (SIGPWR, handle_PWR);
1258 #if defined (SIGPOLL) && (!defined (SIGIO) || SIGPOLL != SIGIO)
1259 signal (SIGPOLL, handle_POLL);
1262 signal (SIGWIND, handle_WIND);
1265 signal (SIGPHONE, handle_PHONE);
1268 signal (SIGWAITING, handle_WAITING);
1271 signal (SIGLWP, handle_LWP);
1274 signal (SIGDANGER, handle_DANGER);
1277 signal (SIGGRANT, handle_GRANT);
1280 signal (SIGRETRACT, handle_RETRACT);
1283 signal (SIGMSG, handle_MSG);
1286 signal (SIGSOUND, handle_SOUND);
1289 signal (SIGSAK, handle_SAK);
1292 signal (SIGPRIO, handle_PRIO);
1295 /* Lynx doesn't seem to have anything in signal.h for this. */
1296 signal (33, handle_33);
1297 signal (34, handle_34);
1298 signal (35, handle_35);
1299 signal (36, handle_36);
1300 signal (37, handle_37);
1301 signal (38, handle_38);
1302 signal (39, handle_39);
1303 signal (40, handle_40);
1304 signal (41, handle_41);
1305 signal (42, handle_42);
1306 signal (43, handle_43);
1307 signal (44, handle_44);
1308 signal (45, handle_45);
1309 signal (46, handle_46);
1310 signal (47, handle_47);
1311 signal (48, handle_48);
1312 signal (49, handle_49);
1313 signal (50, handle_50);
1314 signal (51, handle_51);
1315 signal (52, handle_52);
1316 signal (53, handle_53);
1317 signal (54, handle_54);
1318 signal (55, handle_55);
1319 signal (56, handle_56);
1320 signal (57, handle_57);
1321 signal (58, handle_58);
1322 signal (59, handle_59);
1323 signal (60, handle_60);
1324 signal (61, handle_61);
1325 signal (62, handle_62);
1326 signal (63, handle_63);
1328 signal (SIGTERM, handle_TERM);
1404 return 0; /* end of main */