05.03.2018 19:58, Andrey Jr. Melnikov пишет:
yuri.nefe...@gmail.com wrote:
По смыслу иногда переводят как ??ошибочная арифметическая
операция??. Скорее всего целое деление на ноль.
Это вы батенька, путаете теплое с мягким. Деление на ноль с помошью FPU -
обычная
такая опреация, правда в результате которой возникает NaN.
Вообще-то получается ±Inf, которая в результате следующих делений может
превратиться в ноль и дать вполне разумный результат. А вот NaN так и
доползет до конца вычислений. Ну и с помощью управляющего регистра FPU
можно добиться, чтобы в ответ на разнообразные ошибки операций с
плавающей точкой вылетал сигнал SIGFPE, хотя это редко кому-то бывает нужно.
А вот деление на 0 с помошью ALU - таки да, дергает "Divide Error" вектор.
То, что их в glibc аккуратненько слепили в одну кучу - это проблемы в
головах авторов glibc, т.к. подходы к обработке этих ошибок - принципиально
разные.
Поведение на столько странное, что увидев один раз, сложно забыть. что в
первую очередь надо искать деление целых чисел.