1*a5a4af3bSchristos /* Test GDB dealing with stuff like stepping into sigtramp. */ 2*a5a4af3bSchristos 3*a5a4af3bSchristos #include <signal.h> 4*a5a4af3bSchristos #include <unistd.h> 5*a5a4af3bSchristos 6*a5a4af3bSchristos 7*a5a4af3bSchristos static int count = 0; 8*a5a4af3bSchristos 9*a5a4af3bSchristos static void handler(int sig)10*a5a4af3bSchristoshandler (int sig) 11*a5a4af3bSchristos { 12*a5a4af3bSchristos signal (sig, handler); 13*a5a4af3bSchristos ++count; 14*a5a4af3bSchristos } 15*a5a4af3bSchristos 16*a5a4af3bSchristos static void func1()17*a5a4af3bSchristosfunc1 () 18*a5a4af3bSchristos { 19*a5a4af3bSchristos ++count; 20*a5a4af3bSchristos } 21*a5a4af3bSchristos 22*a5a4af3bSchristos static void func2()23*a5a4af3bSchristosfunc2 () 24*a5a4af3bSchristos { 25*a5a4af3bSchristos ++count; 26*a5a4af3bSchristos } 27*a5a4af3bSchristos 28*a5a4af3bSchristos int main()29*a5a4af3bSchristosmain () 30*a5a4af3bSchristos { 31*a5a4af3bSchristos #ifdef SIGALRM 32*a5a4af3bSchristos signal (SIGALRM, handler); 33*a5a4af3bSchristos #endif 34*a5a4af3bSchristos #ifdef SIGUSR1 35*a5a4af3bSchristos signal (SIGUSR1, handler); 36*a5a4af3bSchristos #endif 37*a5a4af3bSchristos alarm (1); 38*a5a4af3bSchristos ++count; /* first */ 39*a5a4af3bSchristos alarm (1); 40*a5a4af3bSchristos ++count; /* second */ 41*a5a4af3bSchristos func1 (); 42*a5a4af3bSchristos alarm (1); 43*a5a4af3bSchristos func2 (); 44*a5a4af3bSchristos return count; 45*a5a4af3bSchristos } 46