Что означает код NTSTATUS 0xC0000092 (STATUS_FLOAT_STACK_CHECK)?

 
Предыдущий Следующий
STATUS_FLOAT_OVERFLOW STATUS_FLOAT_UNDERFLOW

STATUS_FLOAT_STACK_CHECK

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

STATUS_FLOAT_STACK_CHECK относится к стеку регистров x87 FPU: операция обнаружила переполнение или опустошение этого восьмиуровневого стека. Это не переполнение обычного memory stack текущего thread.

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

  • По адресу исключения убедитесь, что выполняется именно x87-инструкция, а не SSE/AVX-код, у которого другая модель регистров.
  • Дизассемблируйте путь до сбоя и проследите инструкции, которые помещают значения в x87 stack, извлекают их или меняют порядок.
  • Особенно проверьте inline assembly, старые математические библиотеки и межъязыковые вызовы, где одна сторона может оставить FPU stack в неожиданном состоянии.

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

Сохраните x87 status/control word и содержимое регистров перед проблемным участком. После исправления все ветви должны оставлять одинаковую ожидаемую глубину FPU stack. Маскирование исключения не исправляет несбалансированные push/pop-подобные операции и лишь переносит сбой дальше.

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


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