diff options
Diffstat (limited to 'gdb/testsuite/gdb.base/signals.c')
-rw-r--r-- | gdb/testsuite/gdb.base/signals.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/signals.c b/gdb/testsuite/gdb.base/signals.c new file mode 100644 index 00000000000..280e6e7c5d8 --- /dev/null +++ b/gdb/testsuite/gdb.base/signals.c @@ -0,0 +1,53 @@ +/* Test GDB dealing with stuff like stepping into sigtramp. */ + +#include <signal.h> + +#ifdef __sh__ +#define signal(a,b) /* Signals not supported on this target - make them go away */ +#define alarm(a) /* Ditto for alarm() */ +#endif + +static int count = 0; + +static void +handler (sig) + int sig; +{ + signal (sig, handler); + ++count; +} + +static void +func1 () +{ + ++count; +} + +static void +func2 () +{ + ++count; +} + +int +main () +{ +#ifdef usestubs + set_debug_traps(); + breakpoint(); +#endif +#ifdef SIGALRM + signal (SIGALRM, handler); +#endif +#ifdef SIGUSR1 + signal (SIGUSR1, handler); +#endif + alarm (1); + ++count; /* first */ + alarm (1); + ++count; /* second */ + func1 (); + alarm (1); + func2 (); + return count; +} |