| Предыдущий | Следующий |
| ERROR_DEVICE_ALREADY_ATTACHED | ERROR_PROFILING_NOT_STARTED |
ERROR_INSTRUCTION_MISALIGNMENT
Что означает ERROR_INSTRUCTION_MISALIGNMENT
ERROR_INSTRUCTION_MISALIGNMENT означает, что процессор попытался выбрать инструкцию по адресу, который не удовлетворяет требованиям выравнивания данной архитектуры. Это относится именно к адресу выполняемого кода, а не к невыровненному доступу к данным.
Что проверить
- Зафиксируйте фактический instruction pointer, адрес предыдущей инструкции и цель ветвления, после которого возник код.
- Проверьте адрес возврата, указатели функций, таблицы виртуальных методов и jump table: повреждённый указатель часто приводит к переходу внутрь инструкции или в область данных.
- Если код генерируется динамически, сравните границы и выравнивание выделенного блока с требованиями генератора и архитектуры.
Как локализовать источник
Не исправляйте адрес округлением или маскированием младших битов. Такой приём скрывает первичное повреждение управления. Полезнее сопоставить стек, карту модулей и последний корректный переход, а для перехваченного или сгенерированного кода — проверить момент публикации блока и его точку входа.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.