| Предыдущий | Следующий |
| ERROR_UNWIND | ERROR_INVALID_UNWIND_TARGET |
ERROR_BAD_STACK
description[Windows обнаружила недопустимый или неверно выровненный стек при раскрутке.]Недопустимый стек при раскрутке исключения
ERROR_BAD_STACK означает, что Windows не смогла безопасно пройти или раскрутить текущий стек из-за недопустимой структуры, выравнивания или сохранённого контекста. Обычно это указывает на повреждение памяти, несоответствие ABI или неправильную низкоуровневую обработку исключений.
Вероятные причины
- Повреждение буфера стека или перезаписанный адрес возврата.
- Несоответствие соглашений о вызовах на границе функции.
- Ручной ассемблерный код с неправильными метаданными раскрутки.
- Использование повреждённой записи контекста или неправильное переключение стеков.
Диагностика
Сохраните полный дамп до продолжения. Проверьте контекст исключения, границы стека, метаданные раскрутки, символы модулей и последние достоверные кадры. Включите защиту потока управления, проверки стека компилятором и Application Verifier, где это применимо.
Обработка
Не пытайтесь продолжить выполнение в повреждённом процессе. Сохраните диагностику и безопасно завершите его. Дефект может быть эксплуатируемым, поэтому в первую очередь исследуйте записи в память, предшествовавшие раскрутке.
Примечание для разработчика
Проверьте собственный ассемблерный и JIT-сгенерированный код на соответствие ABI платформы, включая требуемое выравнивание стека и регистрацию данных раскрутки.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.