Неопределенное поведение, когда обработчик сигнала нормально возвращается из ошибки программы
Этот дефект возникает, когда обработчик сигнала возвращается после захвата вычислительного сигнала исключения SIGFPE
, SIGILL
, или SIGSEGV
.
Обработчик сигнала, который обычно возвращается из вычислительного исключения, является неопределенным поведением. Даже если обработчик пытается исправить ошибку, которая вызвала сигнал, программа может вести себя неожиданно.
Проверьте валидность значений ваших переменных перед расчетом, чтобы избежать использования обработчика сигналов для захвата исключений. Если вы не можете избежать захвата обработчиком сигналов исключений расчетов, вызовите abort()
, quick_exit()
, или _Exit()
в обработчике, чтобы остановить программу.
Группа: Программирование |
Язык: C | C++ |
По умолчанию: On для рукописного кода, off для сгенерированного кода |
Синтаксис командной строки
: SIG_HANDLER_COMP_EXCP_RETURN
|
Влияние: Низкое |
ИДЕНТИФИКАТОР 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