Что такое сигнал "FPE_FLTSUB: индекс вне диапазона"?
В sys/signal.h
, один из возможных кодов для SIGFPE
это FPE_FLTSUB
для которого комментарий просто говорит "индекс вне диапазона -NOTIMP". Я на OS X 10.9, но, похоже, в glibc.
Это не одно из стандартных исключений IEEE, так что же и когда оно возникает?
1 ответ
FreeBSD генерирует этот код с SIGFPE
когда х86 BOUND
Инструкция обнаруживает индекс массива вне границ. Похоже, Linux генерирует SIGSEGV
вместо.
Это не особенно важно, так как BOUND
инструкции лучше избегать. Он недоступен в 64-битном режиме, и на большинстве современных процессоров он очень медленный, даже если индекс не выходит за пределы.