![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Crashed_computer.jpg/640px-Crashed_computer.jpg&w=640&q=50)
Аварийный отказ (программирование)
Материал из Википедии — свободной encyclopedia
Аварийный отказ[1][2] (также катастрофический отказ[1][2], авария[3][2], фатальный сбой[2], разг. крах, вылет, падение, крэш англ. crash) — это аварийное завершение программы или операционной системы, когда они перестают нормально функционировать.
![Отказавший iMac](http://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Crashed_computer.jpg/640px-Crashed_computer.jpg)
Часто программа зависает, пока не будет создан отчёт об ошибке с подробностями отказа.
Если программа является важной частью операционной системы, вся система может аварийно завершить работу или зависнуть в результате паники ядра или фатальной системной ошибки.
Большинство отказов являются результатом выполнения недопустимых машинных инструкций. Например, когда счётчик команд установлен на неправильный адрес, или в результате переполнения буфера перезаписывается часть данных программы из-за ошибки. Это приводит к доступу к случайным значениям данных в памяти, которые уже не соответствуют начальному запросу, и происходит обработка исключений в процессоре.
Исходная ошибка программного обеспечения, которая запустила эту цепочку событий, как правило, считается причиной сбоя, который обнаруживается в процессе отладки. Это часто далеко не очевидно, так как исходная ошибка может быть далека от события сбоя и казаться совершенно корректным исходным кодом.