Что означает код NTSTATUS 0xC00002B4 (STATUS_FLOAT_MULTIPLE_FAULTS)?

 
Предыдущий Следующий
STATUS_CANT_ENABLE_DENY_ONLY STATUS_FLOAT_MULTIPLE_TRAPS

STATUS_FLOAT_MULTIPLE_FAULTS

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

STATUS_FLOAT_MULTIPLE_FAULTS указывает, что при обработке состояния вычислений с плавающей точкой обнаружено несколько fault-условий, а не одно однозначное арифметическое исключение.

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

Для такого статуса особенно важно не анализировать только последнюю инструкцию. Сохраните полный exception context, управляющие и status-регистры x87/SSE и последовательность операций перед доставкой исключения.

  • Проверьте, какие флаги исключений уже были установлены до текущей инструкции и когда они очищались.
  • Сопоставьте маски divide-by-zero, overflow, underflow, invalid operation и denormal с фактическими флагами.
  • Если код использует отложенную проверку состояния FPU, найдите первую операцию, которая выставила fault-флаг, а не только точку последующей доставки.

Как подтвердить исправление

После исправления тот же набор входных данных должен проходить без накопления нескольких непогашенных fault-флагов. Не используйте общий __except как замену анализу численной причины: он изменит управление, но не восстановит корректное состояние вычислений.

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


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