Site icon EfmSoft

Что означает код NTSTATUS 0xC000008D (STATUS_FLOAT_DENORMAL_OPERAND)?

 
Предыдущий Следующий
STATUS_ARRAY_BOUNDS_EXCEEDED STATUS_FLOAT_DIVIDE_BY_ZERO

STATUS_FLOAT_DENORMAL_OPERAND

Что означает STATUS_FLOAT_DENORMAL_OPERAND

STATUS_FLOAT_DENORMAL_OPERAND означает, что операция с плавающей точкой получила denormal (subnormal) входной операнд и соответствующее FP-условие не было замаскировано.

Что проверить

  • Сохраните адрес инструкции и битовое представление операндов, чтобы подтвердить, какое значение действительно находится в subnormal-диапазоне.
  • Найдите операцию, которая породила очень малое число: постепенное затухание результата, преобразование формата или масштабирование входных данных.
  • Проверьте DAZ/FTZ и маски исключений в MXCSR/FPU именно текущего thread; библиотеки могут менять эти режимы локально.

Выбор исправления

Если subnormal имеет математический смысл, алгоритм должен явно определять допустимую точность и режим его обработки. Если он является следствием ошибки масштаба, исправляйте источник значения. Включение DAZ превращает очень малый вход в ноль и способно изменить результат вычисления, поэтому это не нейтральный способ скрыть статус.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version