Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 15.docx
Скачиваний:
7
Добавлен:
26.09.2019
Размер:
2.23 Mб
Скачать

Что может вызывать ошибки bsod

Отказ компьютера - это на самом деле защитный "маневр", позволяющий остановить неверно функционирующий процесс, чтобы он не нанес более серьезных повреждений после того, как начал неверно действовать. Обычно это происходит, когда процесс делает что-то (ошибка типа illegal action), не предусмотренное его функциями. К примерам такого рода можно отнести попытку записи данных на страницу памяти, доступную только по чтению, или попытку чтения данных из неотображаемого адреса памяти.

В большинстве случаев опасный код является частью драйвера какого-либо устройства. Именно поэтому компания Microsoft перешла к принципу сертификации и защиты драйверов устройств. Но иногда это не является ошибкой программиста; например, код обращается к памяти должным и допустимым образом, но повреждена сама память.

Независимо от причины существует вероятность, что работа системы нарушена по "принципу домино", когда одни проблемы вызывают другие проблемы, приводящие к повреждению частей системы, которые непосредственно не затрагивались исходной проблемой. Чтобы эта возможность не становилась реальностью, операционная система останавливается, выводя сообщение STOP.

Дамп памяти

(слайд №34)

Дамп памяти — содержимое рабочей памяти одного процесса, ядра или всей операционной системы.

Задание типа файла дампа

Одним из важных решений является выбор типа дампа памяти, который нужно выдавать при ошибке BSOD. Ядро выводит дамп содержимого системной памяти в файл, указанный в диалоговом окне Startup and Recovery (по умолчанию файл %SystemRoot%\memory.dmp), и вы можете выбрать тип и количество информации, которая будет записана. Варианты выбора:

  • Complete Memory Dump (Полный дамп памяти - как в Windows NT).

  • Kernel Memory Dump (Дамп памяти ядра).

  • Small Memory Dump (Малый дамп памяти).

Остановимся подробнее на Small Memory Dump.

Малый дамп памяти (его называют также мини-дампом) ограничивается размером 64 Кб, то есть в него записывается намного меньше информации, чем при двух других вариантах дампа. Однако данные, записываемые в этот файл дампа, могут с большой вероятностью раскрыть причину проблемы (это по сути та же информации, которая выводится системой на экран). В информацию этого дампа включается код и ошибка BSOD, список текущих загруженных драйверов и информация о процессе и потоке, которые исполнялись на момент отказа, а также информация о недавно использовавшихся функциях. Для этого варианта требуется файл подкачки не менее 2 Мб.

Файлы малых дампов памяти не перезаписываются поверх предыдущих файлов дампа. Эти файлы находятся в папке %SystemRoot%\minidump и имеют имена minimm-dd-yy-nn.dmp (nn - номер дампа при повторении даты, если у вас возникло больше одной ошибки BSOD за день).

BlueScreenView

(слайд №35)

BlueScreenView - программа сканирующая все имеющиеся файлы аварийных дампов памяти и отображает сведения обо всех BSOD в сводной таблице. Для каждого BSOD отображаются: имя файла дампа, дата/время BSOD, базовые сведения, выводимые на экран во время сбоя (код ошибки и 4 параметра), также информация о драйвере/модуле, вызвавшем сбой. Для любого из BSOD можно посмотреть данные о загруженных драйверах в нижней панели окна программы. BlueScreenView помечает в списке те драйверы, которые были найдены в стеке минидампа, что позволяет легко найти драйвер, вызвавший сбой.

Пример выявление причины BSOD посредством BlueScreenView

(слайд №36)

Описание проблемы – компьютер постоянно зависал в играх. Запускаем BlueScreenViev и смотрим на нижнюю панель, точнее на те её строки, которые подсвечены красным.

(слайд №37)

Стала понятна причина зависания системы . Как видно по скрину, причиной оказался драйвер видеокарты, который как говорится «криво установился» в систему.

Решение проблемы – скачать свежие драйвера с сайта производителя. После их установки проблема исчезла.

18

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]