Поделиться через


Отладка сбоя приложения

В приложениях пользовательского режима возможны различные ошибки.

К наиболее распространенным типам сбоев относятся нарушения доступа, ошибки выравнивания, исключения, тайм-ауты критических разделов (взаимоблокировки) и ошибки ввода-вывода на странице.

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

Исключения в пользовательском режиме имеют множество возможных причин. Если возникает неизвестное исключение, найдите его в ntstatus.h или winerror.h, если это возможно.

Время ожидания критического раздела (или возможные взаимоблокировки) возникает, когда один поток ожидает критического раздела в течение длительного времени. Их сложно отлаживать и требует углубленного анализа трассировки стека.

Ошибки ввода-вывода на странице почти всегда являются сбоями оборудования. Для проверки можно дважды проверка код состояния в ntstatus.h.

См. также раздел

Отображение критического раздела

Время ожидания критического раздела (пользовательский режим)