I am able to handle segmentation fault once. But when it occurs again it causes segmentation fault. Is it possible to handle sigsegv signal multiple times?
#define _POSIX_SOURCE
#include <signal.h>
#include <stdio.h>
int *a;
class FoobarException
{
int thingy;
};
void signal_handler(int signum, siginfo_t *info, void *)
{
printf("signal_handler\n");
FoobarException *f = new FoobarException;
throw f;
}
void call(int * c)
{
struct sigaction act;
act.sa_sigaction = signal_handler;
sigemptyset (&act.sa_mask);
act.sa_flags = SA_SIGINFO;
sigaction (11, &act, NULL);
try
{
printf("%d\n", *a);
}
catch (FoobarException *f)
{
printf("Hello!\n");
}
}
int main()
{
int *b;
call(b);
printf("I am here.\n");
call(a);
}
First call(b)
handles seg fault but second call(a)
raises a seg fault.