| Предыдущий | Следующий |
| 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-подобные операции и лишь переносит сбой дальше.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.