| Предыдущий | Следующий |
| ERROR_BAD_STACK | ERROR_INVALID_PORT_ATTRIBUTES |
ERROR_INVALID_UNWIND_TARGET
Цель разворачивания недопустима
ERROR_INVALID_UNWIND_TARGET означает, что обработка исключения была направлена к кадру, инструкции или контексту, которые механизм разворачивания не может принять. Цель может находиться вне активного стека, не соответствовать метаданным разворачивания или быть повреждённой.
Распространённые причины
- Повреждённые данные регистрации исключения или контекста.
- Неправильная обработка setjmp/longjmp, fiber, coroutine или пользовательского стека.
- Рукописный ассемблерный или JIT-код с неполными метаданными разворачивания.
- Повреждение памяти, изменившее сохранённое состояние кадров.
Диагностика
Зафиксируйте запись исключения, целевой указатель инструкции, границы стека, активную цепочку кадров и данные разворачивания модуля. Сравните отладочную и оптимизированную сборки, поскольку оптимизация меняет компоновку кадров и может выявить отсутствующие метаданные.
Обработка
Продолжение выполнения небезопасно. Завершите затронутый процесс после сохранения дампа. Исправьте источник недопустимой цели, а не добавляйте вокруг сбоя универсальный обработчик.
Тестирование
Проверяйте исключения на каждой границе сгенерированного кода, подключаемого модуля и языковой среды выполнения на всех поддерживаемых архитектурах.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
