У меня есть кадр обработки исключений для приложения Xcode в macOS, который содержит код Cpp и Swift. Я использую фрейм сигналов Unix для обработки исключений с помощью sigaction. Мой обработчик сигнала sigaction вызывается при возникновении исключения Swift или Cpp. Однако в некоторых исключениях, таких как SIGSEGV, обработчик сигнала вызывается повторно. Чтобы справиться с этим, я использую флаг SA_RESETHAND, чтобы обработчик вызывался только один раз, а затем действие по умолчанию для сигнала выполнялось для завершения процесса.
Этот подход хорошо работает, когда исключение возникает из-за кода Cpp, однако, когда оно происходит из-за кода Swift, обработчик сигнала все равно вызывается повторно. Может кто-нибудь объяснить, почему это происходит и какое решение этой проблемы?
Подробнее здесь: https://stackoverflow.com/questions/783 ... exceptions