Что означает код NTSTATUS 0x80000026 (STATUS_LONGJUMP)?

 
Предыдущий Следующий
STATUS_ALREADY_DISCONNECTED STATUS_CLEANER_CARTRIDGE_INSTALLED

STATUS_LONGJUMP

Нелокальный переход longjmp изменил текущий поток управления

longjmp возобновляет выполнение в контексте, ранее сохранённом функцией setjmp, обходя обычную последовательность вызовов и возвратов между текущей точкой и сохранённым окружением. STATUS_LONGJUMP — это уведомление NTSTATUS, связанное с таким переносом управления.

Когда оно появляется в отладчике или диагностике потока исключений, проверьте сохранённое окружение перехода и кадр, инициировавший переход. Деструкторы C++ не являются переносимым механизмом восстановления вокруг функции C longjmp, а к локальным переменным, изменённым после setjmp , применяются специальные правила языка. Статус относится к переносу управления, а не к сбою инструкции ветвления.

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

  • Найдите окружение setjmp, являющееся целью перехода.
  • Проверьте ресурсы и инварианты, которые были бы восстановлены обычными промежуточными возвратами.
  • Не классифицируйте статус как нарушение доступа или обычное аппаратное исключение.

Ссылки


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