Аварийный отказ (программирование)

Аварийный отказ (также катастрофический отказ, авария, фатальный сбой, разг. крах, падение, краш англ. crash) — это аварийное завершение программы или операционной системы, когда они перестают нормально функционировать.

Часто программа зависает, пока не будет создан отчёт об ошибке с подробностями отказа.

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

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

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

Источник: Википедия

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я