Поиск

6 мая 2011 г.

Как с помощью дампа памяти определить драйвер, вызывающий BSOD

Причиной критических ошибок Windows, сопровождаемых синими экранами (BSOD), часто является драйвер – вновь установленный или поврежденный. Определив, какой именно драйвер служит причиной ошибки, можно приступать к устранению проблемы: обновить драйвер, откатиться к более ранней версии, переустановить или удалить приложение, установившее драйвер и т. д. Не всегда название драйвера отображается на синем экране. Однако существует очень простой способ, позволяющий с помощью дампа памяти определить проблемный драйвер за пару минут.
Шаг 1 – Включение записи дампов памяти

Сначала нужно убедиться, что запись дампов включена. Для этого нужно открыть свойства системы, нажав комбинацию клавиш Win+Pause, [в Vista щелкнуть ссылку Дополнительные параметры системы], перейти на вкладку Дополнительно, и наконец нажать кнопку Загрузка и восстановление.

Малых дампов памяти должно быть достаточно для наших целей.


ВЗЯТО С:\OUTSIDETHEBOX

Обратите внимание на путь к папке, куда они будут сохраняться при возникновении критической ошибки.

Теперь вы можете запаковать файл в архив, прикрепить его к сообщению в форуме Устранение критических ошибок Windows и подождать, пока вам кто-то сообщит название проблемного драйвера :) Но вы можете сделать это самостоятельно, не прилагая больших усилий.
Шаг 2 – Загрузка и установка диагностических средств

Это не так страшно, как можно подумать :)

1. Загрузите и установите Debugging Tools for Windows (ссылки на пакеты MSI вы найдете здесь). Они также входят в состав веб-установщика Windows SDK, где после запуска в нужно выбрать Debugging Tools:
* в разделе Common Utilities для установки в 32-разрядной ОС
* в разделе Redistributable Packages для установки в 64-разрядной ОС (будут загружены все три версии – x86, x64, Itanium)
2. Загрузите сценарий (kdfe.cmd), который написал Александр Суховей и опубликовал на ресурсе sysadmins.ru (поскольку живую ссылку мне там найти не удалось, предлагаю свою). Распакуйте архив в любую папку.
Примечание. В случае нестандартного расположения папки Program Files вам может потребоваться указать в kdfe.cmd путь к папке, в которую установлены средства Debugging Tools for Windows. Используйте переменную dbgpath в строке 41.

Шаг 3 – Анализ дампа памяти

Теперь все сводится к выполнению одной команды. Откройте командную строку и перейдите в папку, в которую вы распаковали kdfe.cmd. Запустите файл, указав в качестве параметра путь к файлу дампа памяти (в примере ниже файл называется Mini1110307-01.dmp)
1

kdfe.cmd "%systemroot%\Minidump\Mini1110307-01.dmp"

Через минуту вы увидите результат.

Драйвер, послуживший причиной ошибки, определен!

Комментариев нет:

Отправить комментарий