Неопределенное поведение, когда обработчик сигнала обычно возвращается из ошибки в программе
Возвратитесь из вычислительного обработчика сигнала исключения, происходит, когда обработчик сигнала возвращает после ловли вычислительного сигнала исключения SIGFPE
, SIGILL
или SIGSEGV
.
Обработчик сигнала, который обычно возвращается из вычислительного исключения, является неопределенным поведением. Даже если обработчик пытается зафиксировать ошибку, которая инициировала сигнал, программа может неожиданно вести себя.
Проверяйте валидность значений ваших переменных перед вычислением, чтобы избегать использования обработчика сигнала, чтобы отловить исключения. Если вы не можете избежать обработчика, чтобы отловить сигналы исключения вычисления, вызовите abort()
, quick_exit()
или _Exit()
в обработчике, чтобы остановить программу.
Группа: Программирование |
Язык: C | C++ |
Значение по умолчанию: на |
Синтаксис командной строки:
SIG_HANDLER_COMP_EXCP_RETURN
|
Влияние: низко |
ID CWE: 387 |
Find defects (-checkers)
| Function called from signal handler not asynchronous-safe
| Function called from signal handler not asynchronous-safe (strict)
| Signal call from within signal handler