Мои вопросы:
- Существует ли универсальный обработчик исключений? Используя механизм сигналов, мне нужно явно зарегистрироваться для получения сигналов. Но я хочу перехватывать все сигналы и гарантировать, что везде, где я могу, я покажу пользователю сообщение, и приложение просто не закроется. И получить несколько журналов для диагностики. В Windows есть универсальный обработчик исключений, установленный с помощью SetUnhandledExceptionHandler. Есть ли в Linux что-то подобное?
- Из того, что я прочитал до сих пор, сигналы кажутся единственным способом перехвата исключений (например, SIGINT, SIGSEGV, SIGFPE и т. д.). Если мне нужно использовать сигналы, каким должно быть поведение? Если основной поток вызывает SIGSEGV, то он застрянет в цикле (код, который вызвал обработчик исключений SIGSEGV ), и смогу ли я показать какое-то сообщение пользователю? Если рабочий поток (созданный приложением) попадает в SIGSEGV, то я намереваюсь завершить рабочий поток (поэтому избегая цикла) и дать сигнал основному потоку показать сообщение пользователю и корректно завершить работу.
Подробнее здесь: https://stackoverflow.com/questions/791 ... g-in-linux