在sys/signal.h
中,SIGFPE
的一个可能代码是FPE_FLTSUB
,评论只是说“下标超出范围-NOTIMP”。我在OS X 10.9上,但它似乎在glibc as well。
它不是标准的IEEE异常之一,它是什么,什么时候被引发?
答案 0 :(得分:0)
当x86 SIGFPE
指令检测到数组索引超出范围时,FreeBSD会使用BOUND
生成此代码。看起来Linux会生成SIGSEGV
。
这不是特别重要,因为最好避免使用BOUND
指令。它在64位模式下不可用,在大多数现代处理器上,即使索引在范围内,它也非常慢。