#include #include #include #include #include #include void sigfn(int signum) { printf("In the sigsegv fn\n"); signal(SIGSEGV, SIG_DFL); raise(SIGSEGV); printf("after the signal raise\n"); } int a[4] = {1100, 1200, 1300, 1400}; int dummy = 420; void func4(int src, int dest) { struct timeval t; char x[50000], *y=NULL; struct sockaddr from; struct sockaddr_un bindaddr; struct timespec ts; int fromlen; int sd; ts.tv_sec = 60; ts.tv_nsec = 0; nanosleep(&ts, 0); } void func3(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11, int arg12, int arg13, int arg14) { struct timeval t; char x[50000]; struct sockaddr from; struct sockaddr_un bindaddr; struct timespec ts; int fromlen; int sd; char *y = NULL, *z = "asdfasdfasdfjasdf;ljasdfjasd;fjas;dfjasdjf;asdf"; int a=1,b=2; func4(a, b); } void func2(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11, int arg12, int arg13, int arg14) { func3(42000, arg1, arg2, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); } void func(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11, int arg12, int arg13, int arg14) { func2(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); } main() { signal(SIGSEGV, sigfn); func(a[0], a[1], a[2], a[3], 500, 600, 700, 800, 900, 1000, a[0], a[1], a[2], a[3]); }