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