Как перехватить аварийное завершение программы системой
Автор: Alexey Ivanov
Иногда, играя в какую-нибудь игру мы наблюдаем такую картину - игра "вываливается" в Windows с сообщением типа "Программа выполнила некорректное обращение к памяти и будет закрыта". Хорошо еще, если мы незадолго до этого сохранились. Если нет, то уж совсем обидно. Все мы люди и в реальных "больших" проектах мы не всегда можем найти все ошибки. Таким образом, не помешает механизм, когда программа "перехватывает" такие критические ситуации и перед закрытием скидывает на диск важную информацию. Думаю пользователю вашей игры было бы приятно после очередного запуска игры в связи с ее аварийным завершением увидеть в списке "сохраненок" сейв сделаный в момент аварийного завершения. Данная подсказка илюстрирует один из способов обработки таких критических моментов.
Механизм защиты памяти в старших процессорах Intel реализован на аппаратном уровне и в случае возникновения ошибки защиты генерируется исключение для обработки этой ошибки. Windows позволяет установить свой обработчик для данного исключения.