| 234 | } |
| 235 | |
| 236 | static void |
| 237 | setSigSegvSignal() |
| 238 | { |
| 239 | struct sigaction sa; |
| 240 | |
| 241 | sigemptyset (&sa.sa_mask); |
| 242 | sa.sa_flags = SA_RESTART | SA_SIGINFO; |
| 243 | /* if SA_SIGINFO is set, sa_sigaction is to be used instead of sa_handler. */ |
| 244 | sa.sa_sigaction = backTraceSigSegvHandler; |
| 245 | |
| 246 | if (sigaction(SIGSEGV, &sa, NULL) == -1) { |
| 247 | std::perror("setting up sigsegv signal"); |
| 248 | std::exit(1); |
| 249 | } |
| 250 | } |
| 251 | |
| 252 | #endif // if defined(__NATRON_LINUX__) && !defined(__FreeBSD__) |
| 253 |