У меня есть кадр обработки исключений для приложения Xcode в macOS, который содержит код Cpp и Swift. Я использую фрейм сигналов Unix для обработки исключений с помощью sigaction. Мой обработчик сигнала sigaction вызывается при возникновении исключения Swift или Cpp. Однако в некоторых исключениях, таких как SIGSEGV, обработчик сигнала вызывается повторно. Чтобы справиться с этим, я использую флаг SA_RESETHAND, чтобы обработчик вызывался только один раз, а затем действие по умолчанию для сигнала выполнялось для завершения процесса.
Этот подход хорошо работает, когда исключение возникает из-за кода Cpp, однако, когда оно происходит из-за кода Swift, обработчик сигнала все равно вызывается повторно. Может кто-нибудь объяснить, почему это происходит и какое решение этой проблемы?
Подробнее здесь: https://stackoverflow.com/questions/783 ... exceptions
Флаг SA_RESETHAND в sigaction не работает для быстрых исключений ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как мне перехватить SIGSEGV с помощью sigaction() при использовании JNI?
Anonymous » » в форуме JAVA - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как мне перехватить SIGSEGV с помощью sigaction() при использовании JNI?
Anonymous » » в форуме JAVA - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как мне перехватить SIGSEGV с помощью sigaction() при использовании JNI?
Anonymous » » в форуме JAVA - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-