1e93f7393Sniklas /* Test GDB dealing with stuff like stepping into sigtramp. */ 2e93f7393Sniklas 3e93f7393Sniklas #include <signal.h> 4*b725ae77Skettenis #include <unistd.h> 5e93f7393Sniklas 6e93f7393Sniklas #ifdef __sh__ 7e93f7393Sniklas #define signal(a,b) /* Signals not supported on this target - make them go away */ 8e93f7393Sniklas #define alarm(a) /* Ditto for alarm() */ 9e93f7393Sniklas #endif 10e93f7393Sniklas 11e93f7393Sniklas static int count = 0; 12e93f7393Sniklas 13*b725ae77Skettenis #ifdef PROTOTYPES 14*b725ae77Skettenis static void handler(int sig)15*b725ae77Skettenishandler (int sig) 16*b725ae77Skettenis #else 17e93f7393Sniklas static void 18e93f7393Sniklas handler (sig) 19e93f7393Sniklas int sig; 20*b725ae77Skettenis #endif 21e93f7393Sniklas { 22e93f7393Sniklas signal (sig, handler); 23e93f7393Sniklas ++count; 24e93f7393Sniklas } 25e93f7393Sniklas 26e93f7393Sniklas static void func1()27e93f7393Sniklasfunc1 () 28e93f7393Sniklas { 29e93f7393Sniklas ++count; 30e93f7393Sniklas } 31e93f7393Sniklas 32e93f7393Sniklas static void func2()33e93f7393Sniklasfunc2 () 34e93f7393Sniklas { 35e93f7393Sniklas ++count; 36e93f7393Sniklas } 37e93f7393Sniklas 38e93f7393Sniklas int main()39e93f7393Sniklasmain () 40e93f7393Sniklas { 41e93f7393Sniklas #ifdef usestubs 42e93f7393Sniklas set_debug_traps(); 43e93f7393Sniklas breakpoint(); 44e93f7393Sniklas #endif 45e93f7393Sniklas #ifdef SIGALRM 46e93f7393Sniklas signal (SIGALRM, handler); 47e93f7393Sniklas #endif 48e93f7393Sniklas #ifdef SIGUSR1 49e93f7393Sniklas signal (SIGUSR1, handler); 50e93f7393Sniklas #endif 51e93f7393Sniklas alarm (1); 52e93f7393Sniklas ++count; /* first */ 53e93f7393Sniklas alarm (1); 54e93f7393Sniklas ++count; /* second */ 55e93f7393Sniklas func1 (); 56e93f7393Sniklas alarm (1); 57e93f7393Sniklas func2 (); 58e93f7393Sniklas return count; 59e93f7393Sniklas } 60