Что означает код ошибки Windows 549 (ERROR_INSTRUCTION_MISALIGNMENT)?

 
Предыдущий Следующий
ERROR_DEVICE_ALREADY_ATTACHED ERROR_PROFILING_NOT_STARTED

ERROR_INSTRUCTION_MISALIGNMENT

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

ERROR_INSTRUCTION_MISALIGNMENT означает, что процессор попытался выбрать инструкцию по адресу, который не удовлетворяет требованиям выравнивания данной архитектуры. Это относится именно к адресу выполняемого кода, а не к невыровненному доступу к данным.

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

  • Зафиксируйте фактический instruction pointer, адрес предыдущей инструкции и цель ветвления, после которого возник код.
  • Проверьте адрес возврата, указатели функций, таблицы виртуальных методов и jump table: повреждённый указатель часто приводит к переходу внутрь инструкции или в область данных.
  • Если код генерируется динамически, сравните границы и выравнивание выделенного блока с требованиями генератора и архитектуры.

Как локализовать источник

Не исправляйте адрес округлением или маскированием младших битов. Такой приём скрывает первичное повреждение управления. Полезнее сопоставить стек, карту модулей и последний корректный переход, а для перехваченного или сгенерированного кода — проверить момент публикации блока и его точку входа.

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


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