Как проверить дамп ошибки синий экран

Программы для анализа дампов памяти WindowsПри возникновении синих экранов BSoD Windows 11, 10 и другие версии системы создают дамп (снимок состояния) оперативной памяти, содержащий отладочную информацию, которую можно использовать для диагностики и определения причин сбоя. Функция обычно включена по умолчанию, но если дампы памяти не создаются, их можно включить: Как включить создание дампов памяти в Windows.

Подробным анализом дампов памяти занимаются разработчики, но и для рядового пользователя, столкнувшегося с синими экранами в Windows это может оказаться полезным: адреса в памяти ему ничего не дадут, но часто можно обнаружить имя файла приложения или драйвера, вызывающее сбой. Здесь помогут специальные программы для анализа дампов памяти, о которых и пойдёт речь далее.

WinDbg

Синий экран BSoD

У Майкрософт имеется собственный инструмент отладки и анализа дампов памяти — WinDbg (пока Preview). Скачать его для Windows 11 и Windows 10 можно из Microsoft Store, используя поиск в магазине приложений или прямую ссылку.

Пример простого анализа дампа памяти для обычного пользователя с целью выявления процесса, вызвавшего BSoD с помощью WinDbg:

  1. Запустите WinDbg от имени Администратора (правый клик по ярлыку в меню «Пуск» — «Запуск от имени администратора»).
  2. В главном меню программы выберите «Файл» — «Open dump File» и укажите путь к нужному мини-дампу, обычно находящемуся в папке C:WindowsMinidump, нажмите кнопку «Open». Открыть дамп памяти в WinDbg
  3. Введите команду
    !analyze -v

    в поле ввода команд (либо нажмите по ссылке с командой в верхней панели WinDbg) и дождитесь завершения анализа. Анализировать дамп памяти в WinDbg

  4. В панели «Command» в верхней части окна программы будет отображен результат анализа, где, при удаче, вы сможете найти информацию о том, каким процессом был инициирован сбой (PROCESS_NAME). Имя процесса в WinDbg
  5. Может быть информация о файле драйвера (.sys) в поле IMAGE_NAME и другая информация, позволяющая найти источник проблемы. Имя файла драйвера в WinDbg

Далее полученную информацию можно использовать для того, чтобы найти, каким устройствам соответствуют драйверы в Интернете, выяснить назначение процессов вызвавших сбой, предпринять те или иные действия с целью их устранения.

BlueScreenView

BlueScreenView — очень простая утилита, которая позволяет выбрать файла дампа памяти в списке и посмотреть, какие файлы драйвера и процессы привели к сбою: в окне программы они будут выделены красным цветом.

Анализ дампов памяти в BlueScreenView

Скачать BlueScreenView можно с официального сайта разработчика https://www.nirsoft.net/utils/blue_screen_view.html

WhoCrashed

Ещё одна программа для анализа дампов памяти — WhoCrashed. В бесплатной версии предоставляет не так много информации.

После нажатия кнопки «Analyze» имеющиеся дампы памяти анализируются, и на вкладке «Report» выводятся коды ошибок, а также текстовое описание на английском языке о том, что означает этот код и о возможных причинах сбоя.

Анализ дампов памяти в WhoCrashed

Официальный сайт WhoCrashed https://www.resplendence.com/whocrashed, судя по всему, не открывается из РФ, но утилиту легко найти и скачать из сторонних источников.

Обновлено 16.10.2016

синий экран смерти

Как анализировать синий экран dump memory в Windows-01

Синий экран смерти или как его еще называют BSOD, может изрядно подпортить жизнь как компьютеру так и серверу, а еще выяснилось и виртуальной машине. Сегодня расскажу как анализировать синий экран dump memory в Windows, так как правильная диагностика и получение причины из за чего не работает ваша система, 99 процентов ее решения, тем более системный инженер, просто обязан уметь это делать, да и еще в кратчайшие сроки, так как от этого бизнес может в следствии простоя сервиса, терять кучу денег.

BSOD расшифровка

Давайте для начала разберем, что означает данная аббревиатура, BSOD от английского Blue Screen of Death или еще режим STOP ошибки.

Ошибки синего экрана смерти возникают по разным причинам, среди которых могут быть проблемы с драйверами, может быть какое то сбойное приложение, или сбойный модуль оперативной памяти. Как только у вас появился синий экран в Windows, то ваша система автоматически создаст файл crash memory dump, который мы и будем анализировать.

Как настроить создание memory dump

По умолчанию windows при синем экране создает аварийный дамп файл memory.dmp, сейчас покажу как он настраивается и где хранится, я буду показывать на примере Windows Server 2008 R2, так как у меня недавно была задача по изучению вопроса синего экрана в виртуальной машине. Для того чтобы узнать где настроен dump memory windows, открываем пуск и щелкаем правым кликом по значку Компьютер и выбираем свойства.

dump memory windows

Как анализировать синий экран dump memory в Windows-Свойства компьютера

Далее идем в пункт Дополнительные параметры системы

синий экран виндовс

Как анализировать синий экран dump memory в Windows-параметры системы

Переходим во вкладку Дополнительно-Загрузка и восстановление. Жмем кнопку Параметры

Как анализировать синий экран dump memory в Windows-04

Как анализировать синий экран dump memory в Windows-Загрузка и восстановление

Где хранится файл memory.dmp

и видим, что во первых стоит галка выполнить автоматическую перезагрузку, для записи отладочной информации, выбрано Дамп памяти ядра и ниже есть пусть куда сохраняется дамп памяти %SystemRoot%MEMORY.DMP

dumping physical memory

Как анализировать синий экран dump memory в Windows-05

Перейдем в папку c:windows и найдем файл MEMORY.DMP в нем содержаться коды синего экрана смерти

коды синего экрана смерти

Как анализировать синий экран dump memory в Windows-memory.dmp

Как настроить mini dump

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

ошибки синего экрана смерти

Как анализировать синий экран dump memory в Windows-07

Хранится он в папке c:windowsminidump. Преимущество в том, что он занимает меньше места и на каждый синий экран создается отдельным файлом. Всегда можно просмотреть историю появлений синего экрана.

Как анализировать синий экран dump memory в Windows

Как анализировать синий экран dump memory в Windows-08

Теперь когда мы разобрались где искать файл memory dump, нужно научиться его интерпритировать и понимать причину из за чего происходит синий экран смерти. В решении этой задачи нам поможет Microsoft Kernel Debugger. Скачать Microsoft Kernel Debugger можно с официального сайта, главное выберите нужную версию ОС если кому то влом, то можете скачать с яндекс диска по прямой ссылке. Так же он входит в состав ADK.

Как установить Microsoft Kernel Debugger

Скачиваем Microsoft Kernel Debugger, в итоге у вас будет маленький файл который позволит скачать из интернета все что вам нужно. Запускаем его.

Как установить Microsoft Kernel Debugger-01

Как установить Microsoft Kernel Debugger-01

присоединяться к программе по улучшению качества участвовать не будем

Как установить Microsoft Kernel Debugger-02

Как установить Microsoft Kernel Debugger-02

жмем Accept и соглашаемся с лицензией

Как установить Microsoft Kernel Debugger-03

Как установить Microsoft Kernel Debugger-соглашаемся с лицензией

Далее выбираем компонент и жмем install

появляется синий экран

Как установить Microsoft Kernel Debugger-04

начнется установка Microsoft Kernel Debugger

Как установить Microsoft Kernel Debugger-05

Как установить Microsoft Kernel Debugger-установка MKD

Видим, что Microsoft Kernel Debugger успешно установлен

синий экран sys

Как установить Microsoft Kernel Debugger-06

После чего видим, что в пуске появилась папка Debugging Tools for Windows как для 32 так и для 64 битных систем.

Как установить Microsoft Kernel Debugger-07

Как установить Microsoft Kernel Debugger-07

Помимо самого пакета Debugging Tools for Windows, также понадобятся набор отладочных символов — Debugging Symbols. Набор отладочных символов специфичен для каждой ОС, на которой был зафиксирован BSoD. Потому придется загрузить набор символов для каждой ОС, анализировать работу которой Вам придется. Для 32-разрядной Windows XP потребуются набор символов для Windows XP 32-бит, для 64-разрядной ОС потребуются набор символов для Windows XP 64-бит. Для других ОС семейства Windows наборы символов подбираются сообразно такому же принципу. Загрузить отладочные символы можно отсюда. Устанавливать их рекомендуется по адресу %systemroot%symbols хотя мне нравится устанавливать их в отдельные папки и не захламлять папку Windows.

Анализ синего экрана в Debugging Tools

После установки Debugging Symbols под систему на которой был синий экран смерти запускаем Debugging Tools

синий экран смерти windows

Как установить Microsoft Kernel Debugger-Запуск

Перед анализом содержимого дампа памяти, потребуется провести небольшую настройку отладчика. Конкретно — сообщить программе, по какому пути следует искать отладочные символы. Для этого выбираем в меню File > Symbol File Path…

Как установить Microsoft Kernel Debugger

Как установить Microsoft Kernel Debugger-09

Нажимаем кнопку Browse…

Как установить Microsoft Kernel Debugger10

Как установить Microsoft Kernel Debugger10

и указываем папку, в которую мы установили отладочные символы для рассматриваемого дампа памяти, можно указать несколько папок через запятую и можно запрашивать информацию о требуемых отладочных символах прямо через Интернет, с публичного сервера Microsoft. Таким образом у вас будет самая новая версия символов. Сделать это можно следующим образом — в меню File > Symbol File Path… вводим:

SRV*%systemroot%symbols*http://msdl.microsoft.com/download/symbols

Как установить Microsoft Kernel Debugger-11

Как установить Microsoft Kernel Debugger-11

Как анализировать синий экран смерти

Копируем с компьютера где выскочил синий экран, файл memory.dmp или minidump, и открываем его, выбираем в меню File > Open Crash Dump… и выбираем требуемый для рассмотрения файл.

синий экран смерти

Как анализировать синий экран смерти-01

Выбираем для примера minidump

синий экран windows

Как анализировать синий экран смерти-открываем minidump

Начнется анализ минидампа, видим появилась ссылка на ошибку, щелкаем по ней для более детальной информации о синем экране.

ошибка синий экран

Как анализировать синий экран смерти-03

И видим сбойное приложение которое крушит вашу систему, так же можно еще детальнее посмотреть в чем дело, ткнув ссылку.

синий экран windows 7

Как анализировать синий экран смерти-04

Получите более детальную информацию по причине синего экрана.

при установки синий экран

Как анализировать синий экран смерти-05

Если открыть memory.dmp то вы получите подобную картину и видим почему синий экран у вас появился.

почему синий экран

Как анализировать синий экран смерти-06

Ткнув по ссылке в логе вы получаете самую детальную информацию об ошибке.

Как анализировать синий экран смерти-07

Как анализировать синий экран смерти-07

Вот так вот просто диагностировать и устранить синий экран смерти.

Материал сайта pyatilistnik.org

Содержание

  • «Синий фонарь» включается неожиданно
  • Что можно узнать из информации на синем экране
  • Как включить функцию создания и сохранения малых дампов памяти
  • Как анализировать содержимое минидампов

С синими экранами смерти Windows (Blue Screen of Dead) не сталкивался, пожалуй, только редкий счастливчик. Большинство же из нас имело «счастье» лицезреть сие явление на собственном ПК. И очень многих оно вгоняет в панику: а вдруг компу крышка?

Синий экран смерти в Windows 10.

Чтобы не теряться, когда на экране внезапно засветился синий «фонарь», нужно уметь смотреть неприятелю «в лицо». То есть научиться выяснять, что привело к появлению BSoD’a, оценивать, насколько ситуация критична и знать, что делать, чтобы она больше не повторялась.

«Синий фонарь» включается неожиданно

В процессе работы Windows возникает множество ошибок, основную массу которых система устраняет незаметно для пользователя. Но среди них бывают и столь серьезные, что продолжение сеанса работы становится невозможным. Либо возникшая проблема угрожает Windows или железу необратимым повреждением. В таких случаях и выскакивает BSoD. Система как бы говорит пользователю: «Извини, друг, но у меня не было другого выбора. Если бы не аварийное завершение, произошло бы что-то нехорошее».

Синие экраны смерти возникают на любой стадии загрузки и работы компьютера. А приводит к ним следующее:

  • Некорректная работа драйверов устройств из-за плохой совместимости с операционной системой, конфликта с другими драйверами, повреждения или изменения параметров.
  • Некорректная работа программного обеспечения, чаще того, которое создает собственные службы – антивирусов, файерволов, эмуляторов оборудования и т. п.
  • Заражение вредоносными программами.
  • Аппаратные неполадки – неисправность оперативной памяти, дисковых накопителей, сетевых, звуковых адаптеров, видеоподсистемы, материнской платы, блока питания и другого оборудования.
  • Нештатная работа устройств – перегрев, нестабильное питание, разгон.
  • Нарушение обмена данными между устройствами – плохой контакт в разъемах, неисправные кабели и шлейфы.
  • Несовместимость устройств.

Кстати, однократный BSoD после подключения к компьютеру нового девайса, если в дальнейшем всё работает без нареканий, можно считать нормой.

Что можно узнать из информации на синем экране

К счастью, подавляющее большинство синих экранов смерти вызывается программными сбоями, которые пользователь может устранить самостоятельно и относительно быстро, не прибегая к переустановке винды. Для программных неполадок характерны рандомные по времени BSoD’ы с одинаковыми или близкими по значению кодами ошибки.

Аппаратные «синяки» чаще возникают в одних и тех же условиях (например, при увеличении нагрузки на видеокарту, попытке открыть объемный файл) и имеют разные коды. Либо эти коды указывают на проблемы конкретного оборудования, как то: ошибки доступа к устройству, невозможность считывания, распознавания.

Однако эти признаки позволяют сделать лишь предположение о причине проблемы. Для ее уточнения необходимы более детальные сведения.

Синий экран смерти Windows 10 выглядит так:

Синий экран смерти на Windows 10.

Информацию об ошибке в нем несет строка «Stop code». В моем примере это CRITICAL PROCESS DIED.

Отсканировав телефоном QR-код, который находится здесь же, вы можете перейти на сайт windows com/stopcode, где содержатся общие советы по устранению сбоя. Подсказки от Microsoft иногда полезны, но о причине конкретно вашего случая там ничего нет, а значит, придется искать эти данные в другом источнике, например:

  • На компьютерных форумах.
  • В справочниках по различным кодам ошибок, в частности, на сайте Docs.Micosoft и в других местах.

Но и это не совсем полные сведения. Каждая ошибка уникальна, и самая точная информация о ней содержится в файле, который система сохраняет на диск в момент сбоя. А именно – в малом дампе памяти, которые мы и будет учиться анализировать. А чтобы такие файлы создавались, необходимо сделать несколько маленьких настроек.

Как включить функцию создания и сохранения малых дампов памяти

Для сохранения дампов памяти на жестком диске системе обязательно нужен файл подкачки, который должен находиться в том же разделе, где папка Виндовс. Его размер может быть от 2 Mb и больше.

  • Зайдите через контекстное меню в свойства папки «Компьютер».

Свойства папки Компьютер.

  • Щелкните в открывшемся окошке кнопку «Дополнительные параметры системы».

Свойства системы.

  • В разделе окна «Загрузка и восстановление» нажмите кнопочку «Параметры».

Загрузка и восстановление.

  • В разделе нового окна «Отказ системы» из списка «Запись отладочной информации» выберите «Малый дамп памяти». В качестве места сохранения пусть будет указано «%SystemRoot%Minidump» (%systemroot% — это папка Windows).

Запись отладочной информации.

На этом настройка закончена. Теперь информация о BSoD’ах будет сохраняться в вышеуказанном каталоге.

Как анализировать содержимое минидампов

Существует разные способы анализа аварийных дампов памяти Windows, но мы познакомимся с самым, на мой взгляд, удобным и простым – при помощи бесплатной утилиты

BlueScreenView

.

BlueScreenView особенно удобна тем, что не требует установки на компьютер громоздких пакетов Debugging Tools for Windows и может запускаться с любого носителя, достаточно кликнуть по одноименному файлу.

BlueScreenView главное окно.

Интерфейс утилиты, несмотря на отсутствие русского языка, весьма дружелюбен. Главное окно разделено на 2 половины. Вверху – таблица минидампов — файлов из папки WindowsMinidump с датой и временем создания (колонка Crash Time), кодом ошибки в шестнадцатеричном формате (колонка Bug Check Code), четырьмя ее параметрами и другими сведениями. Впрочем, данные о конкретном сбое удобнее просматривать в отдельном окне, которое открывается двойным щелчком по интересующей строке (показано ниже). Главное окно дает больше информации о проблеме в целом, если BSoD’ы случались неоднократно. В нем легко отслеживать даты происшествий и коды ошибок, по повторяемости которых можно судить о характере неполадки.

Параметры ошибки.

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

Разберем для примера один из малых дампов памяти с кодом ошибки 0x00000154. Скажу наперед, что он был вызван заломом шлейфа жесткого диска. Начиная анализ, посмотрим на список драйверов в стеке событий. Здесь нет ничего, кроме ntoskrnl.exe – ядра ОС Windows, которое, конечно, в проблеме не виновато — просто во время сбоя ни одного драйвера в стеке не было, а оно присутствует там всегда.

BlueScreenView таблица драйверов.

Далее заглянем в окошко параметров дампа. Здесь тоже не упомянуто ничего, кроме ntoskrnl.exe, значит, проблема вызвана не драйвером.

Параметры дампа.

Идем дальше. Согласно сведениям на сайте Microsoft, ошибка 0x00000154 возникает, когда «компонент хранилища обнаруживает неожиданное исключение» и связана, как правило, с неполадками накопителей.

Для проверки этой версии оценим показатели S.M.A.R.T жесткого диска компьютера, которые отслеживает программа Hard Disk Sentinel. В день аварии здесь появились изменения следующих атрибутов:

  • 188 Command Timeout.
  • 199 UltraDMA CRC Error Count.

S.M.A.R.T жесткого диска.

Оба указывают на ошибки передачи данных по интерфейсному кабелю. Тест поверхности харда и проверка файловой структуры отклонений не выявили, поэтому проблема была решена заменой шлейфа.

Рассмотрим еще один случай синего экрана смерти, причиной которого стал антивирус Касперского. BSoD периодически возникал во время запуска Windows 10 и при выходе компьютера из спящего режима.

Ошибка зафиксировалась несколько раз под одним и тем же кодом – 0x000000d1, который означает следующее: «драйвер режима ядра попытался получить доступ к странице памяти в процессе IRQL, который имел слишком высокий приоритет». На этот раз BlueScreenView указал на проблему в драйвере NDIS.sys, отвечающем за сетевые подключения. Значит, высока вероятность, что сбой имеет программное происхождение и связан с чем-то, что использует сеть.

Драйвер, вызывающий BSOD.

Для выявления виновника потребовалось провести анализ автозагрузки приложений. На раннем этапе запуска операционной системы этого ПК стартовало не слишком много программ, которым разрешен доступ в Интернет, точнее, один Касперский. В подтверждение его причастности я снова обратилась к списку загруженных в память драйверов в BlueScreenView и среди того, что присутствует здесь обычно, обнаружила kl1.sys, принадлежащий антивирусу.

Таблица драйверов Bluescreenview.

После удаления Касперского синие экраны больше не выскакивали.

Утилита BlueScreenView позволяет анализировать аварийные дампы памяти, полученные не только там, где она запущена, но и на другом компьютере. Для этого не нужно копировать их в папку Windows Minidump своего ПК, которая загружается в программу по умолчанию. Скопируйте их в любое удобное место, например, на рабочий стол, и укажите программе новое расположение каталога, который следует загружать.

Функция выбора папки с файлами дампов находится в меню «Options» — «Advanced Options» (открывается сочетанием клавиш Ctrl + O) и называется «Load from the following minidump folder».

Изменение папки загрузки минидампов.

Установив здесь отметку, кликните кнопку «Browse» и найдите нужный каталог в проводнике. Когда захотите вернуть настройки по умолчанию, нажмите «Default».

Вот так за считанные минуты можно узнать причину почти любого синего экрана смерти Windows, а исследовав минидампы в совокупности – выявить источник неполадки и успешно его устранить. Кстати, подсказки, какой драйвер чему принадлежит, можете найти здесь. Там же приведены рекомендации по решению связанных с ними проблем.

Дамп памяти WindowsПродолжу расскажу о синем экране смерти, начатый в прошлой заметке.

Итак, если компьютер внезапно перезагружается или зависает, а cиний экран смерти не появляется или появляется на долю секунды, то все равно информацию о причинах сбоя можно восстановить.

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

Но создание дампов может быть отключено в системе, поэтому стоит убедиться, что, во-первых, система создает дампы при сбоях, а, во-вторых, стоит узнать место на диске, куда они сохраняются.

Для этого нужно зайти в раздел Система.

В Windows 10 это можно сделать через поиск, а в предыдущих версиях операционной системы через Панель управления.

Окно Система  Windows

Далее переходим в Дополнительные параметры, а затем на вкладке Дополнительно переходим в Параметры раздела Загрузка и восстановление.

Настройка дампа памяти в Windows

Здесь должна быть включена запись событий в системный журнал, ну а чтобы компьютер автоматически не перезагружался и отображал нам содержимое синего экрана смерти, нужно отменить автоматическую перезагрузку, если она была включена.

Также здесь отображается путь к дампам — мы видим, что дамп сохраняется в папку %SystemRoot% — это обозначение папки Windows.

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

Итак, система вылетела в синий экран смерти, после чего был создан дамп памяти.

Для анализа дампов существуют специальные программы и одной из самых популярных является утилита BlueScreenView.

Программа очень проста в использовании и не требует установки — скачиваем с официального сайта и разархивируем. При этом с официального сайта можно скачать файл, с помощью которого можно русифицировать программу. Для этого данный файл нужно будет поместить в папку с разархивированной программой.

Если после запуска в программе не отображаются дампы, хотя система «срывалась» в синий экран смерти, то стоит зайти в настройки программы и убедиться, что путь к дампам памяти указан верно, то есть он должен быть таким же, как и в настройках системы.

настройки утилиты Blue Screen View

После этого нужно обновить информацию в окне программы и все созданные в системе дампы отобразятся. Если дампов несколько, то, ориентируемся по дате сбоя. Выбираем нужный дамп, а затем появится подробная информация по нему.

Здесь выводится название ошибки, ее STOP-код с параметрами и если причиной стал драйвер, то в соответствующем поле мы обнаружим его название.

Анализ дампа памяти с помощью BlueScreenView

Также в нижней части окна программы розовым будут выделяться файлы, которые также могли стать причиной сбоя. Придется по порядку разбираться с каждым из них. Алгоритм здесь аналогичен рассмотренному в прошлой заметке — ищем решение в интернете, а в качестве поискового ключа используем название файла или код ошибки.

При этом не обязательно вручную вводить данные в поисковик. Если щелкнуть правой кнопкой мыши по строке дампа, то из контекстного меню можно выбрать пункт, который позволит найти в Гугле описание именно этой проблемы.

Поиск причин BSoD в Гугл через BlueScreenView

Можно выбрать поиск в Гугл по коду ошибки, по коду ошибки и названию драйвера или по коду ошибки и параметру.

Также с помощью этой утилиты можно быстро найти местоположение проблемного файла на диске.

Поиск проблемного файла при появлении BSoD

Иногда бывает, что файл, вызвавший проблему, принадлежит какой-то программе или игре. По местоположению файла на диске можно быстро определить, к какой именно программе или игре он относится.

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

И последний вопрос, на который я отвечу в рамках этой заметки — что делать, если после появления синего экрана компьютер более не запускается? То есть компьютер зависает или постоянно перегружается, а значит нет возможности проанализировать дамп памяти.

Ответ логичен и прост — нужно создать загрузочную флешку, с помощью которой «вытянуть» файл дампа с жесткого диска и проанализировать его на другом компьютере. Для этого загружаемся с флешки и на жестком диске компьютера в папке Windows или в подпапке minidump находим файл дампа, который копируем на флешку. Затем на другом компьютере с помощью утилиты BlueScreenView анализируем дамп, как было рассказано в этой заметке.

Загрузка с аварийной флешки

Для реализации данного мероприятия можно, например, использовать загрузочную флешку с утилитой Dr.Web CureIt. О ее создании я подробно рассказал в заметке о лечении вирусов.

В момент критического сбоя операционная система Windows прерывает работу и показывает синий экран смерти (BSOD). Содержимое оперативной памяти и вся информация о возникшей ошибке записывается в файл подкачки. При следующей загрузке Windows создается аварийный дамп c отладочной информацией на основе сохраненных данных. В системном журнале событий создается запись о критической ошибке.

Внимание! Аварийный дамп не создается, если отказала дисковая подсистема или критическая ошибка возникла на начальной стадии загрузки Windows.

Содержание:

  • Типы аварийных дампов памяти Windows
  • Как включить создание дампа памяти в Windows?
  • Установка WinDBG в Windows
  • Настройка ассоциации .dmp файлов с WinDBG
  • Настройка сервера отладочных символов в WinDBG
  • Анализ аварийного дампа памяти в WinDBG

Типы аварийных дампов памяти Windows

На примере актуальной операционной системы Windows 10 (Windows Server 2016) рассмотрим основные типы дампов памяти, которые может создавать система:

  • Мини дамп памяти (Small memory dump) (256 КБ). Этот тип файла включает минимальный объем информации. Он содержит только сообщение об ошибке BSOD, информацию о драйверах, процессах, которые были активны в момент сбоя, а также какой процесс или поток ядра вызвал сбой.
  • Дамп памяти ядра (Kernel memory dump). Как правило, небольшой по размеру — одна треть объема физической памяти. Дамп памяти ядра является более подробным, чем мини дамп. Он содержит информацию о драйверах и программах в режиме ядра, включает память, выделенную ядру Windows и аппаратному уровню абстракции (HAL), а также память, выделенную драйверам и другим программам в режиме ядра.
  • Полный дамп памяти (Complete memory dump). Самый большой по объему и требует памяти, равной оперативной памяти вашей системы плюс 1MB, необходимый Windows для создания этого файла.
  • Автоматический дамп памяти (Automatic memory dump). Соответствует дампу памяти ядра с точки зрения информации. Отличается только тем, сколько места он использует для создания файла дампа. Этот тип файлов не существовал в Windows 7. Он был добавлен в Windows 8.
  • Активный дамп памяти (Active memory dump). Этот тип отсеивает элементы, которые не могут определить причину сбоя системы. Это было добавлено в Windows 10 и особенно полезно, если вы используете виртуальную машину, или если ваша система является хостом Hyper-V.

Как включить создание дампа памяти в Windows?

С помощью Win+Pause откройте окно с параметрами системы, выберите «Дополнительные параметры системы» (Advanced system settings). Во вкладке «Дополнительно» (Advanced), раздел «Загрузка и восстановление» (Startup and Recovery) нажмите кнопку «Параметры» (Settings). В открывшемся окне настройте действия при отказе системы. Поставьте галку в чек-боксе «Записать события в системный журнал» (Write an event to the system log), выберите тип дампа, который должен создаваться при сбое системы. Если в чек-боксе «Заменять существующий файл дампа» (Overwrite any existing file) поставить галку, то файл будет перезаписываться при каждом сбое. Лучше эту галку снять, тогда у вас будет больше информации для анализа. Отключите также автоматическую перезагрузку системы (Automatically restart).

В большинстве случаев для анализа причины BSOD вам будет достаточно малого дампа памяти.

настройка minidump в windows 10

Теперь при возникновении BSOD вы сможете проанализировать файл дампа и найти причину сбоев. Мини дамп по умолчанию сохраняется в папке %systemroot%minidump. Для анализа файла дампа рекомендую воспользоваться программой WinDBG (Microsoft Kernel Debugger).

Установка WinDBG в Windows

Утилита WinDBG входит в «Пакет SDK для Windows 10» (Windows 10 SDK). Скачать можно здесь.

Файл называется winsdksetup.exe, размер 1,3 МБ.

WinDBG для Windows7 и более ранних систем включен в состав пакета «Microsoft Windows SDK for Windows 7 and .NET Framework 4». Скачать можно здесь.

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

установка Windows 10 SDK

Можете установить весь пакет, но для установки только инструмента отладки выберите Debugging Tools for Windows.

установка Debugging Tools for Windows

После установки ярлыки WinDBG можно найти в стартовом меню.

Настройка ассоциации .dmp файлов с WinDBG

Для того, чтобы открывать файлы дампов простым кликом, сопоставьте расширение .dmp с утилитой WinDBG.

  1. Откройте командную строку от имени администратора и выполните команды для 64-разрядной системы:
    cd C:Program Files (x86)Windows Kits10Debuggersx64
    windbg.exe –IA


    для 32-разрядной системы:
    C:Program Files (x86)Windows Kits10Debuggersx86
    windbg.exe –IA
  2. В результате типы файлов: .DMP, .HDMP, .MDMP, .KDMP, .WEW – будут сопоставлены с WinDBG.

windbg ассоциация .dmp файлов

Настройка сервера отладочных символов в WinDBG

Отладочные символы (debug-символы или symbol files) – это блоки данных, генерируемые в процессе компиляции программы совместно с исполняемым файлом. В таких блоках данных содержится информация о именах переменных, вызываемых функциях, библиотеках и т.д. Эти данные не нужны при выполнении программы, но полезные при ее отладке. Компоненты Microsoft компилируются с символами, распространяемыми через Microsoft Symbol Server.

Настройте WinDBG на использование Microsoft Symbol Server:

  • Откройте WinDBG;
  • Перейдите в меню File –> Symbol File Path;
  • Пропишите строку, содержащую URL для загрузки символов отладки с сайта Microsoft и папку для сохранения кэша:
    SRV*E:Sym_WinDBG*http://msdl.microsoft.com/download/symbols
    В примере кэш загружается в папку E:Sym_WinDBG, можете указать любую.
  • Не забывайте сохранить изменения в меню File –> Save WorkSpace;

WinDBG произведет поиск символов в локальной папке и, если не обнаружит в ней необходимых символов, то самостоятельно загрузит символы с указанного сайта. Если вы хотите добавить собственную папку с символами, то можно сделать это так:

SRV*E:Sym_WinDBG*http://msdl.microsoft.com/download/symbols;c:Symbols

Если подключение к интернету отсутствует, то загрузите предварительно пакет символов с ресурса Windows Symbol Packages.

Анализ аварийного дампа памяти в WinDBG

Отладчик WinDBG открывает файл дампа и загружает необходимые символы для отладки из локальной папки или из интернета. Во время этого процесса вы не можете использовать WinDBG. Внизу окна (в командной строке отладчика) появляется надпись Debugee not connected.

Команды вводятся в командную строку, расположенную внизу окна.

windbg - анализ дампа памяти

Самое главное, на что нужно обратить внимание – это код ошибки, который всегда указывается в шестнадцатеричном значении и имеет вид 0xXXXXXXXX (указываются в одном из вариантов — STOP: 0x0000007B, 02.07.2019 0008F, 0x8F). В нашем примере код ошибки 0х139.

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

Отладчик предлагает выполнить команду !analyze -v, достаточно навести указатель мыши на ссылку и кликнуть. Для чего нужна эта команда?

  • Она выполняет предварительный анализ дампа памяти и предоставляет подробную информацию для начала анализа.
  • Эта команда отобразит STOP-код и символическое имя ошибки.
  • Она показывает стек вызовов команд, которые привели к аварийному завершению.
  • Кроме того, здесь отображаются неисправности IP-адреса, процессов и регистров.
  • Команда может предоставить готовые рекомендации по решению проблемы.

Основные моменты, на которые вы должны обратить внимание при анализе после выполнения команды !analyze –v (листинг неполный).

1: kd>
!analyze -v

*****************************************************************************
* *
* Bugcheck Analysis *
* *
*****************************************************************************


Символическое имя STOP-ошибки (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)

Описание ошибки (Компонент ядра повредил критическую структуру данных. Это повреждение потенциально может позволить злоумышленнику получить контроль над этой машиной):

A kernel component has corrupted a critical data structure. The corruption could potentially allow a malicious user to gain control of this machine.

Аргументы ошибки:

Arguments:
Arg1: 0000000000000003, A LIST_ENTRY has been corrupted (i.e. double remove).
Arg2: ffffd0003a20d5d0, Address of the trap frame for the exception that caused the bugcheck
Arg3: ffffd0003a20d528, Address of the exception record for the exception that caused the bugcheck
Arg4: 0000000000000000, Reserved
Debugging Details:
------------------

Счетчик показывает сколько раз система упала с аналогичной ошибкой:

CUSTOMER_CRASH_COUNT: 1

Основная категория текущего сбоя:

DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

Код STOP-ошибки в сокращенном формате:

BUGCHECK_STR: 0x139

Процесс, во время исполнения которого произошел сбой (не обязательно причина ошибки, просто в момент сбоя в памяти выполнялся этот процесс):

PROCESS_NAME: sqlservr.exe

CURRENT_IRQL: 2

Расшифровка кода ошибки: В этом приложении система обнаружила переполнение буфера стека, что может позволить злоумышленнику получить контроль над этим приложением.

ERROR_CODE: (NTSTATUS) 0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.
EXCEPTION_CODE: (NTSTATUS) 0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.

Последний вызов в стеке:

LAST_CONTROL_TRANSFER: from fffff8040117d6a9 to fffff8040116b0a0

Стек вызовов в момент сбоя:

STACK_TEXT:
ffffd000`3a20d2a8 fffff804`0117d6a9 : 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`3a20d528 : nt!KeBugCheckEx
ffffd000`3a20d2b0 fffff804`0117da50 : ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2 : nt!KiBugCheckDispatch+0x69
ffffd000`3a20d3f0 fffff804`0117c150 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiFastFailDispatch+0xd0
ffffd000`3a20d5d0 fffff804`01199482 : ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006f9 : nt!KiRaiseSecurityCheckFailure+0x3d0
ffffd000`3a20d760 fffff804`014a455d : 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951 : nt! ?? ::FNODOBFM::`string'+0x17252
ffffd000`3a20d8c0 fffff804`013a34ac : 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 ffffe001`0a34c600 : nt!IopSynchronousServiceTail+0x379
ffffd000`3a20d990 fffff804`0117d313 : ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380 : nt!NtWriteFile+0x694
ffffd000`3a20da90 00007ffb`475307da : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13
000000ee`f25ed2b8 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ffb`475307da

Участок кода, где возникла ошибка:

FOLLOWUP_IP:
nt!KiFastFailDispatch+d0
fffff804`0117da50 c644242000 mov byte ptr [rsp+20h],0
FAULT_INSTR_CODE: 202444c6
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!KiFastFailDispatch+d0
FOLLOWUP_NAME: MachineOwner

Имя модуля в таблице объектов ядра. Если анализатору удалось обнаружить проблемный драйвер, имя отображается в полях MODULE_NAME и IMAGE_NAME:

MODULE_NAME: nt
IMAGE_NAME: ntkrnlmp.exe

Если кликнете по ссылке модуля (nt), то увидите подробную информацию о пути и других свойствах модуля. Находите указанный файл, и изучаете его свойства.

1: kd>
lmvm nt

Browse full module list
Loaded symbol image file: ntkrnlmp.exe
Mapped memory image file: C:ProgramDatadbgsymntoskrnl.exe5A9A2147787000ntoskrnl.exe
Image path: ntkrnlmp.exe
Image name: ntkrnlmp.exe
InternalName: ntkrnlmp.exe
OriginalFilename: ntkrnlmp.exe
ProductVersion: 6.3.9600.18946
FileVersion: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

windbg - lvm nt

В приведенном примере анализ указал на файл ядра ntkrnlmp.exe. Когда анализ дампа памяти указывает на системный драйвер (например, win32k.sys) или файл ядра (как в нашем примере ntkrnlmp.exe), вероятнее всего данный файл не является причиной проблемы. Очень часто оказывается, что проблема кроется в драйвере устройства, настройках BIOS или в неисправности оборудования.

Если вы увидели, что BSOD возник из-за стороннего драйвера, его имя будет указано в значениях MODULE_NAME и IMAGE_NAME.

Например:

Image path: SystemRootsystem32driverscmudaxp.sys
Image name: cmudaxp.sys

Откройте свойсва файла драйвера и проверьте его версию. В большинстве случаев проблема с драйверами решается их обнвовлением.

  • Как проверить гис жкх на ошибки
  • Как проверить гидроник на ошибки
  • Как проверить газ 3110 на ошибки
  • Как проверить всю систему компьютера на ошибки
  • Как проверить все диски на наличие ошибок