Ищем причину 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.

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 42

      +1
      может вместо ">" надо написать ">>" чтоб каждый раз добавлялось, а не перезаписывалось?
        +1
        да, верно :)
          0
          неу так поправьте!
            0
            на тот момент вывод был прописан именно в батнике после каждого выполнения команды
            я решил не делать принудительный вывод в файл по умолчанию (топик исправлен с учетом этого), а оставить это на вкус и цвет
        +5
        галочку поставил, но отключить перезагрузку при BSOD не проще было?
          0
          BSOD появлялся во время загрузки ОС, способ тредом ниже, увы, не годится
            0
            тогда сорри, кстати в некоторых ХР видел при F8 не только безопасный режим, но и пунктик «отключить автоматическую перезагрузку при сбое»
              0
              встречал на форумах отзывы, что это не всегда срабатывает
            0
            Из самого BSOD не всегда можно понять, кто именно виноват, иногда без анализа дампа не обойтись.
            +1
            Чтобы машина не уходила автоматически на перезагрузку, надо в Свойствах Моего компьютера > Закладка «Дополнительно» > «Загрузка и восстановление» > Снять галку «Выполнять автоматическую перезагрузку».
            Пункты могут немного по-другому называться, писал по памяти :)
              0
              Спасибо, КО!
                +4
                Не за что: Р
                По времени я написал комментарий, когда автор еще не упомянул, что мой совет не прокатит из-за того, что ПК вылетал в BSOD уже на этапе загрузки. В статье тоже об этом не было написано, вот я и решил, что «мужики то не знают» :) Мало ли.
                  0
                  просто не хотел в два треда один и тот же ответ писать :)
            • UFO just landed and posted this here
                0
                • UFO just landed and posted this here
                    0
                    я думаю многие исследователи захотели сделать это хотя бы из «спортивного интереса»: «а можно ли!?» :)
                      0
                      Что значит «а можно ли?» — KeBugCheck никто не отменял.
                        0
                        ИМХО, значит, что для них это слишком просто и неинтересно :)
                      0
                      жаль в Редмонде не додумались перекрасить фон в другой цвет. в коричневый например. тогда аббревиатура бы осталась BSOD, а вот «синий» бы исчез, и никто больше не смог бы завалить винду в «синий экран» :D
                    0
                    я видел один раз
                      0
                      При установке Autpost Firewall — стабильно уходит в синьку. Не дружит с тамошними сетевыми драйверами.
                      0
                      Я увидел синий экран смерти в семерке в первый же день, как только установил :-) Русский язык до сих пор не могу установить через Windows Update.
                      0
                      У меня на последнем этапе инсталляции перегружается (без синего экрана, правда) и откатывает инсталляцию.
                        0
                        драйвера от интеловой графики G43/45 постоянно роняют машину когла в Spore играешь… 30 секунд паузы (сброс дампа 8 гигов?) — и перезагрузка
                        +1
                        Так а в чем проблема с компьютером была? Нашли причину BSOD?
                          0
                          чаще всего конфликтовала софтина на скриншоте, какой-то непонятный клавиатурный сервис
                          среди других отмечены вылеты видеодрайвера на режимах интенсивной нагрузки (игры)

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

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

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

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

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

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

                                    Only users with full accounts can post comments. Log in, please.