Windows

индекс
168,47

Ищем причину BSOD в автоматическом режиме

В продолжение статьи TijAY .

Недавно возникла интересная история — на компьютере потерпевшего с завидной регулярностью светился BSOD. К его чести — машина в перезагрузку уходила быстрей, чем удавалось прочитать STOP-код. Выход тут один: анализировать дампы памяти.
Учитывая, что дампов этих накопилось очень большое количество, открывать каждый дебаггером показалось мне слишком утомительным.


На помощь был призван cmd-сценарий Алексея Суховея «Kernel Debugger Front End» (взять можно например здесь). Он требует установленных Windows Debugging Tools и работает примерно так:

KDFE, Kernel Debugger Front End

Ну а чтобы совсем уж облегчить себе дело, был написан простенький .bat-ник:

cd /d %SystemRoot%\Minidump
for %%A in (*.dmp) do «C:\путь\до\скрипта\kdfe» %%A


Лучше будет, если вызвать его с параметром «> kdfe_output.txt», тогда будет достаточно дождаться выполнения скрипта и посмотреть в его папке файл kdfe_output.txt, где будут записаны результаты его работы.

Удачной починки, и да не пребудет с вами БСОД! :)

P.S. C:\Windows оказалось разумно заменить на %SystemRoot%, спасибо ryazantsev ; к cd добавился ключ /d, спасибо asm0dey
P.P.S. Относительно результатов работы самого KDFE — надо внимательно читать вывод скрипта: причина пишется возможнаяProbably caused by»), поэтому в случае битой памяти иногда эта фишка может глючить, и дампы в любом случае придется смотреть вручную в WinDbg.
+37
31 мая 2009, 21:08
79

комментарии (42)

+1
Ctacus #
может вместо ">" надо написать ">>" чтоб каждый раз добавлялось, а не перезаписывалось?
+1
waitekk #
да, верно :)
0
f0b0s #
неу так поправьте!
0
waitekk #
на тот момент вывод был прописан именно в батнике после каждого выполнения команды
я решил не делать принудительный вывод в файл по умолчанию (топик исправлен с учетом этого), а оставить это на вкус и цвет
+5
baxtep2 #
галочку поставил, но отключить перезагрузку при BSOD не проще было?
0
waitekk #
BSOD появлялся во время загрузки ОС, способ тредом ниже, увы, не годится
0
baxtep2 #
тогда сорри, кстати в некоторых ХР видел при F8 не только безопасный режим, но и пунктик «отключить автоматическую перезагрузку при сбое»
0
waitekk #
встречал на форумах отзывы, что это не всегда срабатывает
0
Paul #
Из самого BSOD не всегда можно понять, кто именно виноват, иногда без анализа дампа не обойтись.
+1
alfsoft #
Чтобы машина не уходила автоматически на перезагрузку, надо в Свойствах Моего компьютера > Закладка «Дополнительно» > «Загрузка и восстановление» > Снять галку «Выполнять автоматическую перезагрузку».
Пункты могут немного по-другому называться, писал по памяти :)
0
citius #
Спасибо, КО!
+4
alfsoft #
Не за что: Р
По времени я написал комментарий, когда автор еще не упомянул, что мой совет не прокатит из-за того, что ПК вылетал в BSOD уже на этапе загрузки. В статье тоже об этом не было написано, вот я и решил, что «мужики то не знают» :) Мало ли.
0
waitekk #
просто не хотел в два треда один и тот же ответ писать :)
+1
grayhex #
Чисто из интереса: кто-нибудь в Win 7 BSOD видел?
0
waitekk #
+2
grayhex #
Ой, так мило. По первой ссылке «Как отправить новую систему от Microsoft в Синий экран?».
То есть, сама не падает, так мы её уроним!
0
waitekk #
я думаю многие исследователи захотели сделать это хотя бы из «спортивного интереса»: «а можно ли!?» :)
0
Paul #
Что значит «а можно ли?» — KeBugCheck никто не отменял.
0
waitekk #
ИМХО, значит, что для них это слишком просто и неинтересно :)
0
pietrovich #
жаль в Редмонде не додумались перекрасить фон в другой цвет. в коричневый например. тогда аббревиатура бы осталась BSOD, а вот «синий» бы исчез, и никто больше не смог бы завалить винду в «синий экран» :D
0
night_elf #
я видел один раз
0
Colobock #
При установке Autpost Firewall — стабильно уходит в синьку. Не дружит с тамошними сетевыми драйверами.
0
SilverOK #
Я увидел синий экран смерти в семерке в первый же день, как только установил :-) Русский язык до сих пор не могу установить через Windows Update.
0
skazkin #
Я ставил по этой ссылке без апдейта :)
0
dharbari #
У меня на последнем этапе инсталляции перегружается (без синего экрана, правда) и откатывает инсталляцию.
0
roller #
драйвера от интеловой графики G43/45 постоянно роняют машину когла в Spore играешь… 30 секунд паузы (сброс дампа 8 гигов?) — и перезагрузка
+1
tafe #
Так а в чем проблема с компьютером была? Нашли причину BSOD?
0
waitekk #
чаще всего конфликтовала софтина на скриншоте, какой-то непонятный клавиатурный сервис
среди других отмечены вылеты видеодрайвера на режимах интенсивной нагрузки (игры)

вероятней всего перегрев + загаженная неумелым пользователем система
0
Amper #
А не проще F8 при загрузке -> Отключить автоматическую перезагрузку…
0
whiplash #
простите, но если убрать галочку Автоматическая перезагрузка — система встанет намертво на BSOD и можно спокойно записать данные :)
0
Amper #
–6
vasilisc #
В винде так часто BSoD что уже автоматизируете анализ дампов? =)
гыгы
все на Линукс! =Ъ
0
asm0dey #
А еще, для того чтобы скрипт можно было запускать с любого диска, лучше написать первую строку так:
cd /d C:\Windows\Minidump
+3
ryazantsev #
если делать унифицированный вариант может лучше
вместо cd C:\Windows\Minidump сделать
cd %Systemroot%\Minidump?
0
TijAY #
Да, весьма разумное предложение!
0
waitekk #
внес поправки, спасибо
0
ryazantsev #
не за что!
только ключ /d перед cd стоит оставить, без него с другого диска не переходит
0
waitekk #
хммм, а у меня переходит, что я делаю не так?
впрочем, исправлю
0
ryazantsev #
я из консольки попробовал, в ней не переходит без /d
+2
davnozdu #
Скрипт для определения причины BSOD хорош, но результат не всегда корректен.
У меня был случай, кода билось содержимое ОЗУ и BSOD появлялся с ссылкой на разные файлы.
Помог только ручной анализ дампа в отладчике.

Протёр контакты ОЗУ, глюки прекратились.

И ещё, Windows Debugging Tools можно не тянуть (200Мб) а воспользоваться сервером Microsoft, где эти библиотеки уже есть.

Ещё есть очень полезная ссылка: support.microsoft.com/gp/errormessage
Вводим туда номер ошибки и получаем причину отказа и пути решения проблем.

И на последок: Статья Марк Русинович посвящённая анализу дампов.
www.osp.ru/win2000/2001/03/174728/
+1
waitekk #
я тянул не 200, а 17 Мб

насчет неверного определения — ну так оно и пишет что "possible caused by" :)
0
waitekk #
probably, верней. не possible. вот бы еще на свою память отладчик заиметь… :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.