Выявление segfaults в C

Вы можете использовать функцию error-handling signal, чтобы установить новый osx обработчик сигнала для сигнала:

   #include 
   void (*signal(int signum, void (*sighandler)(int)))(int);

Что-то mac вроде следующего кода:

signal(SIGINT , clean_exit_on_sig);
signal(SIGABRT , clean_exit_on_sig);
signal(SIGILL , clean_exit_on_sig);
signal(SIGFPE , clean_exit_on_sig);
signal(SIGSEGV, clean_exit_on_sig); // <-- this one is for segmentation fault
signal(SIGTERM , clean_exit_on_sig);

void 
clean_exit_on_sig(int sig_num)
{
        printf ("\n Signal %d received",sig_num);
}

c

macos

error-handling

segmentation-fault

2022-11-17T13:36:08+00:00