Информацию о проблемах, возникших при работе с ОС Windows, помогают узнать сведения на экране или файлы в памяти – дампы. В них хранятся данные о текущем состоянии процессора, ядра и других компонентов. Сохранение этих сведений нередко отключено в Виндовс 10, поэтому пользователи самостоятельно настраивают их автоматическое появление. Разберемся, для каких целей необходим дамп памяти в ОС Windows 10, какие типы бывают, как установить.
Для чего он нужен
Данные «оперативки» и материалы, имеющие отношение к критической ошибке, попадают в файл. При запуске ОС появляется аварийный дамп, где сохраняется запись отладочной информации. Сбой блокирует функционирование ОС, поэтому dump – единственный способ получения данных о ней. Чем точнее в нем будет описана проблема, тем проще пользователю проанализировать ситуацию и найти способы решения по устранению недочетов в работе ОС.
Важно получить информацию на момент сбоя. Создание дампа памяти помогает в этом. Аварийный dump применяется с целью диагностики, позволяет выявить и устранить возникшую ошибку программы.
Как работает опция? Во время запуска ОС создает и сохраняет карту секторов, которые занимает на диске файл подкачки. При сбое в работе проверяется целостность этой карты, а также компонентов структуры. Если они не нарушены, то применяются опции, которые сохраняют образ памяти, записывая данные с использованием сохраненной секторной карты.
При следующем запуске ОС диспетчер инициализирует данные, проверяет наличие в нем файлов .dmp. Далее содержимое копируется из него в файл аварийного дампа, делаются соответствующие записи.
Как включить функцию дамп памяти на Windows 10 и настроить ее
Чтобы включить опцию, пользователю потребуется выполнить ряд последовательных действий. В инструкции нет ничего сложного, с ней справится даже новичок в этом деле:
- Тапнуть кнопкой мышки по значку «Пуск».
- В открывшемся окошке выбрать раздел «Система».
- Далее выбрать раздел «Дополнительные параметры».
- В открывшемся окне выбрать «Параметры».
- Настроить аварийный дамп.
Желательно ставить галочки напротив значений, связанных с созданием журнала, сохранением информации о системе. Данные при этом могут достигать нескольких сотен гигабайт. Поэтому целесообразно отметить маркером «Заменить существующий файл дампа».
Зная все о неполадках и причинах возникновения BSoD, будет легче исправить положение и вернуть рабочий режим системы.
Типы аварийных дампов памяти
В Виндовс предусмотрены различные типы .dmp. К основным видам относятся:
- Мини-дамп памяти – файл с минимумом данных о BSoD, процессоре, драйверах, которые работали во время появления критической ошибки. Весит 256 Кб, для извлечения информации требуется установка дополнительной утилиты, например, Blue Screen View. Minidump преимущественно пользуются непрофессионалы.
- Дамп памяти ядра – тоже имеет небольшие размеры, но содержит более подробную информацию, чем m В нем сохраняется информация о памяти ядра, процессора или всей ОС.
- Полный дамп памяти – копирует оперативку системы. Его размер соответствует объему оперативки, это одновременно является его плюсом и, в то же время, существенным минусом. Его размеры могут оказаться огромными, требуя невероятных размеров памяти устройства. Он недоступен на устройствах с оперативной системой 32 бита.
- Автоматический дамп памяти – новый вид, который разработчики впервые ввели в Виндовс 8. Система самостоятельно решает, какой dump записывать, учитывая особенности сбоя, частоту его проявления.
- Активный дамп памяти – внедрен в Виндовс 10, отсортировывает компоненты, неспособные распознать причину ошибки. Полезен для серверов и других виртуальных сервисов.
Установка WinDbg в Windows
Инструмент от разработчиков Microsoft, используется для загрузки, анализа файлов .dmp, созданных во время ошибки или BSoD. Для скачивания пакета нужно перейти по ссылке https://developer.microsoft.com/ru-ru/windows/downloads/windows-10-sdk/. Затем найти «Скачать отдельный пакет SDK». Далее пользователю потребуется открыть скачанную утилиту, инсталлировать ее.
После завершения процесса установки Windbg нужно ассоциировать с файлами .dmp. Для этого выполнить следующее:
- Вызвать строку поиска.
- Скопировать путь к нему и вставить в строку.
- Нажать «Ok».
Далее потребуется настроить путь к символам через «Пуск».
- Найти «Все приложения», затем «Windows Kits» и «WinDbg».
- В появившемся окне выбрать «File», в разделе «Symbol File Path».
- Ввести путь: SRV*C:\SymCache*http://msdl.microsoft.com/download/symbols и нажать «Ok».
- На завершающем этапе открыть «File», затем перейти в «Save Workspace».
- Закрыть WinDbg.
Просмотр и анализ файла мини-дампа
При выполнении операций с малым дампом можно воспользоваться доступной для любого пользователя утилитой Blue Screen View от Nirsoft. После открытия файла он четко укажет на имена этих драйверов. После нажатия на один из них появятся имена сервисов. Если юзер не может прочитать пути решения проблемы, он может воспользоваться поисковиком.
Пользователь может скачать ее с официального источника. Программа работает автономно, не требует скачивания дополнительных символов.
После запуска утилита сразу начнет сканировать директорию, где хранятся файлы дампа. Результаты анализа появятся в отдельной таблице, где будут указаны коды ошибок minidump и причины их появления. Проблемные участки будут выделены красным цветом.
Выполнение анализа и устранение ошибки:
- Для просмотра необходимо переместить файл в окно программы, после загрузится отладочная информация.
- Модули с ошибками высветятся красным цветом.
- Тапнуть по имени мини-дампа, запустить поиск решения в Google, посмотреть варианты устранения проблемы.
В таких случаях среди подсвеченных проблемных драйверов находится истинный источник появления синего «экрана смерти». Для более точного анализа можно применить несколько вариантов анализа.
Как удалить этот файл
Если пользователю понадобилось удалить minidump, то выполняет он эту процедуру ручным способом. А именно: перейти по пути месторасположения файлов на диске: C:\Windows\Minidump. Для удаления элементов minidump в каталоге Windows нужно воспользоваться встроенным инструментом системы «Очистка диска»:
- Вызвать командную строку.
- Ввести команду Cleanmpg.
- Тапнуть по кнопке очищения системных файлов.
- Найти в списке объекты, касающиеся мини-дампа, поставить галочки.
- Начнется удаление, которое потребует некоторое время.
Если в списке нужных объектов не нашлось, это не означает, что они отсутствуют в системе. Скорей всего, они отключены пользователем или программами по очистке.
Дамп памяти в ОС Windows 10 – инструмент, помогающий диагностировать и устранять причины сбоев и появление BSoD. Если автоматическое создание и сохранение дампов памяти отключено, рекомендуется активировать их. Чаще причиной отключения файлов становятся утилиты для очистки ПК и оптимизации работы системы.
С критическими ошибками «оконной» ОС знаком практически каждый её пользователь, и появляющиеся при этом синие экраны смерти (BSoD) обычно ничего хорошего не предвещают. Они могут быть спровоцированы программными или аппаратными причинами, и поскольку источник неприятности не всегда очевиден, решение начинается с диагностических мероприятий.
Исправить ошибку бывает непросто, и часто самым полезным средством для диагностики причин возникшего сбоя становится дамп памяти, представляющий собой снимок состояния оперативной памяти операционки с отладочными сведениями. Причём в Windows не всегда активировано автоматическое создание и сохранение на жёсткий диск дампов памяти, тогда как в исправлении BSoD независимо от характера сбоя эти данные могут сильно помочь.
Для чего нужен дамп памяти Windows
Содержимое оперативной памяти и материалы, касающиеся сбоя, могут писаться в файл подкачки, при следующем старте операционки создаётся аварийный дамп с информацией об отладке, сформированной на базе сохранённых данных (ОС может создавать memory dump и минуя файл подкачки). В журнале событий будет сделана запись об ошибке, если данная опция настроена.
Вывод участка дампа 32-х битной ОС Windows с помощью программы Debug.exe
Тип записываемого дампа может задаваться в свойствах ОС, поддерживаются варианты:
- Малый дамп памяти. Включает немного сведений, в частности это код ошибки с параметрами, список установленных в Виндовс драйверов и т. д., но этой информации бывает достаточно для выявления источника проблемы. Элемент, как правило, будет записан в каталоге C:\Windows\Minidump.
- Дамп памяти ядра. Выполняется сохранение сведений оперативной памяти, связанных только с режимом ядра, исключая информацию, не указывающую на источник появления сбоя.
- Полный дамп системы. Содержимым является вся память операционки, что может создать проблемы при создании снимка, если объём ОЗУ составляет более 4Гб. Обычно пишется в файл C:\Windows\MEMORY.DMP.
- Автоматический дамп памяти (стал доступным с восьмой версии Виндовс). Содержит те же записи, что и memory dump ядра, при этом отличается способом управления системой размером файла подкачки.
- Активный дамп памяти (представлен в «Десятке»). Содержит только активную память хоста из режимов ядра и пользователя* (возможность была изначально реализована для серверов, чтобы при диагностике в дамп не попадали виртуальные машины).
*Дамп пользовательского режима представляет собой дамп определённого процесса. Так, содержимым может являться полная память процесса или фрагмент, список, стек, состояние потоков, списки библиотек, состояние потоков, дескрипторы объектов ядра.
Чаще всего аварийный дамп памяти Windows 7, 8, 10 используется в целях диагностики и позволяет выяснить, как исправить критическую ошибку. Проанализировав содержимое, можно понять, что стало причиной неполадки, и приступить к её устранению.
ВАЖНО. При отказе диска или возникновении BSoD на первой стадии запуска системы аварийный дамп создан не будет.
Как включить создание дампа памяти в Windows
Чтобы активировать автоматическое сохранение memory dump в Виндовс, нужно сделать следующее:
- Переходим к свойствам системы любым удобным способом. Например, жмём правой кнопкой мыши по значку «Мой компьютер» (или «Этот компьютер» на «Десятке»). Выбираем «Свойства», затем в перечне опций в левой колонке жмём «Дополнительные параметры системы». Альтернативный вариант – использование Панели управления, где следует перейти в раздел «Система» (то же окно появится при использовании клавиш Win+Pause), а затем в «Дополнительные параметры системы». В Виндовс 10 также можно применить оснастку «Параметры»(Win+I). В окне нужно перейти к разделу «Система – «О системе» – «Сведения о системе» и далее в дополнительные параметры ОС.
- В открывшемся окне на вкладке «Дополнительно» в области «Загрузка и восстановление» жмём «Параметры».
- В итоге манипуляций откроется следующее окно, где следует выбрать тип записи отладочной информации, задать параметры, проставив в нужных пунктах галочки, после чего нажать кнопку «ОК».
Как настроить дамп памяти в Windows
Настройки действий, производимых при аварийной остановке работы ОС, выполняются в том же окне, что и включение создания memory dump («Загрузка и восстановление»), куда мы попадаем из свойств системы.
Здесь можно настроить параметры запуска ОС и назначить определённые действия в случае её отказа, например:
- указать режим записи дампа со сведениями отладки (по умолчанию выбран автоматический, но может быть выставлено значение «Нет»);
- записать события в журнал (записи добавляются в логи);
- отмеченный пункт «Выполнить автоматическую перезагрузку» позволяет системе перезагрузиться после сбоя и продолжить функционировать;
- при выборе опции «Заменять существующий файл дампа», объект будет подвергаться перезаписи при каждой появляющейся ошибке.
При эксплуатации SSD лучше оставить тип записи «Автоматический дамп памяти», но если нужен файл аварийного дампа, лучше выставить «Малый дамп памяти», он самый лёгкий и его несложно переслать другому пользователю, если вам нужна помощь в анализе состояния.
Иногда может потребоваться увеличение размера файла подкачки больше, чем доступно в оперативке, чтобы он соответствовал полному дампу.
Прочитать memory dump можно посредством специализированных утилит, таких как Microsoft Kernel Debugger, BlueScreenView и других.
Установка WinDbg в Windows
Утилита, являющаяся отладчиком для юзермодных приложений и драйверов, позволяет проанализировать снимок памяти и выяснить, что спровоцировало BSoD. Поставляется она в составе пакета SDK для Windows 10, инсталлятор скачивается на сайте Microsoft. Для Семёрки и ранних версий систем WinDbg можно найти в пакете Microsoft Windows SDK for Windows 7 and NET Framework 4.
Устанавливаем WinDbg:
Анализ аварийного дампа памяти в WinDbg
Перед анализом memory dump необходимо выполнить некоторые настройки. Для работ с софтом понадобится пакет символов отладки Debugging Symbols, загруженный с учётом версии и разрядности системы.
Можно настроить извлечение утилитой символов из интернета, что безопасно, поскольку используется официальный ресурс компании Майкрософт.
Ассоциирование файлов .dmp с WinDbg
Для того чтобы объекты при нажатии на них открывались посредством утилиты:
- В консоли командной строки, запущенной от имени администратора (например, через меню Пуск) выполняем команды (зависимо от разрядности ОС):
cd C:\Progran Files (x86)\Windows Kits\10\Debuggers\x64
exe –IA - Или (для 32-разрядной Виндовс):
cd C:\Progran Files (x86)\Windows Kits\10\Debuggers\x86
exe –IA
Теперь файлы типов .DMP, .HDMP, .MDMP, .KDMP, .WEW будут ассоциироваться с приложением.
Настройка сервера отладочных символов
Отладочные символы, которые генерируются в процессе компиляции приложения вместе с исполняемым файлом, нужны при отладке. Настраиваем WinDbg на извлечение символов из сети:
- в окне WinDbg жмём «File» и выбираем «Symbol Fie Path…» или жмём Ctrl+S;
- указываем путь для загрузки, прописав строчку:
SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols
- применяем корректировки нажатием «File» – «Save Workspace».
Анализ memory dump в WinDbg
Чтобы перейти к процедуре, открываем объект в утилите (File – Open Crash Dump) или, если предварительно настраивались ассоциации файлов, открываем элемент щелчком мыши. Утилита начнёт анализировать файл, затем выдаст результат.
В окне предполагается ввод команд. Запрос «!analyze –v» позволит получить более детальные сведения о сбое (STOP-код, имя ошибки, стек вызовов команд, приведших к проблеме и другие данные), а также рекомендации по исправлению. Для остановки отладчика в меню программы жмём «Debug» – «Stop Debugging».
Как удалить файлы дампа памяти
Если понадобилось удалить memory dump, это можно выполнить вручную, пройдя по пути месторасположения объекта на диске. Так, в системном каталоге Windows нужно найти и удалить файл MEMORY.DMP, а также элементы в каталоге Minidump. Кроме того, можно использовать штатный инструмент системы «Очистка диска»:
- вызываем консоль «Выполнить» (Win+R) и вводим команду «Cleanmgr», чтобы перейти к службе;
- жмём кнопку очищения системных файлов, затем находим и отмечаем в списке строчки, касающиеся memory dump. Если не нашлось, значит, их не создавали.
Создание снимков бывает отключено, даже если вы когда-либо активировали эту функцию по причине деятельности специального софта. Если речь о SSD-накопителе, это могут быть программы для работы с твердотельными дисками. Отключение некоторых опций ОС выполняется ими с целью оптимизации работы, поскольку многократные процессы чтения/записи сокращают продолжительность жизни диска. Также причиной отключения дампа памяти могут быть различные программы очистки компьютера и оптимизации системы.
Windows очень хрупкое творение и чуть что, любое неправильное действие со стороны пользователя влечёт возникновение критических ошибок, и не очень. Узнать информацию по синим экранам смерти, являющимися теми самыми критическими проблемами, помогают сведения, написанные на самом экране, а ещё специальные файлы дампы памяти – сохраняющие данные о причинах появления BsoD. Настоятельно рекомендую включать эту функцию, так как никто не застрахован от появления синего экрана, даже опытный пользователь.
Сами дампы памяти обычно хранятся по пути C:\Windows\MEMORY.DMP, либо C:\Windows\Minidump – где хранятся так называемые малые дампы памяти. Кстати говоря, малый дамп памяти будет тем файлом, который поможет узнать причину появления BsoD.
Обычно создание дампов памяти в Windows 10 по умолчанию отключено, а значит, использование специальных утилит для проверки файлов дампов не даст положительного результата. Давайте приступим непосредственно к действиям.
Обычно для просмотра дампов используют утилиты, наподобие BlueScreenView, но вам необходимо прямо сейчас настроить автоматическое создание дампов памяти иначе и эта программа, и аналогичные будут бесполезны.
Это полезно:
- Проводим анализ дампа памяти или как выявить причину BSoD
- Зеленый экран смерти GSOD – что это такое
Нажмите по значку поиска и введите фразу «Панель управления», чтобы открыть окно этого инструмента.
Переводим отображение значков в вид «Мелкие значки», а потом переходим в раздел «Система».
Откроется окошко, где с левой стороны нажимаем по опции «Дополнительные параметры системы».
Во вкладке «Дополнительно» жмём пунктик «Параметры» раздела «Загрузка и восстановление».
Наконец, открывается окно, где находятся основные параметры по настройке дампов. Тут видно, что в Windows активирован автоматический дамп памяти, который хранится по пути, указанному чуть ниже. А еще включены галочки создания журналов. Помимо этого, создаются и файлы малого дампа памяти, которые при работе с синими экранами смерти очень нам пригодятся. Также сохраняется информацию по ядру системы и памяти. Если стоит автоматический режим, то этого будет достаточно.
Сведения о других дампах памяти
Если открыть выпадающее меню записи отладочной информации, вы увидите несколько пунктов, которые я опишу ниже.
- Малый дамп памяти – мини дамп, который сохраняется по специальному пути и весит 256 Килобайт. В таком файле хранится основная информация по синим экранам смерти и системным процессам. Если необходимо узнать причину BSOD, то достаточно именно малого дампа памяти. Для извлечения сведений используется программа BlueScreenView или похожие. Такой способ может использовать любой новичок.
- Дамп памяти ядра – файл будет содержать такие же сведения, что у автоматического типа. Единственное отличие в изменении системой файла подкачки. Какой вариант выбрать? Думаю, что сразу автоматический тип.
- Полный дамп памяти – в файлике находится полные данные об оперативной памяти, а значит объем файла будет равен размеру оперативки. Стоит у вас на ПК 8 Гб, столько будет на диске занимать файл полного дампа памяти. Для новичков этот вариант особо не пригоден.
- Активный дамп памяти – первое появление в Windows 10. Больше пригоден для серверов и хранит данные об активной памяти и режимах ядра, а также текущего пользователя.
Это интересно: Как определить синий экран (BSoD) с помощью утилиты Windows 10
Как удалить файла дампа памяти
Очень просто, вы заходите по пути расположения этих файлов и вручную их удаляете. Например, файла полного дампа памяти называется MEMORY.DMP, просто удалите его и всё. При использовании инструмента «Очистка диска» тоже есть возможность удалить файлы дампов.
Дамп памяти может быть выключен по причине действия утилит по чистке системы. При использовании SSD и специальных утилит для работы с этими накопителями, они также могут отключать некоторые функции системы, чтобы твердотельный накопитель меньше подвергался процедурам чтения/записи.
Это интересно: Делаем искусственно синий экран смерти в Windows 10
При возникновении критической ошибки при работе с Windows пользователь может задаться вопросом: каким образом можно получить доступ к аварийному дампу памяти Windows? Подобный дамп при правильной настройке конфигурации системы поможет запустить систему в случае сбоя или так называемого синего экрана смерти (BSOD).
Если у вас в процессе настройки дампа памяти возникнут проблемы или операционная система после этого будет работать не корректно то вы можете сделать сброс до заводских настроек.
Дамп памяти Windows 10
Дамп памяти — это то, что находится в рабочей памяти всей операционной системы, процессора и его ядер. Включая всю информацию о состоянии регистров процессора и других служебных структур.
Для чего нужен дамп памяти Windows 10?
Дамп памяти windows 10 является своеобразным чёрным ящиком. При аварии в системе информация, хранящаяся в нём, поможет детально изучить причины возникновения системного сбоя. Данный сбой, как правило, полностью останавливает работу операционной системы. Поэтому дамп памяти — это единственный и самый верный способ получения сведений о любом сбое в системе. И его получение — это фактический слепок информации, находящейся в системе.
Чем более точно содержимое дампа памяти будет отражать происходившее в системе на момент сбоя, тем проще будет при анализе аварийной ситуации и дальнейших действиях по её исправлению.
Крайне важно получить актуальную копию именно в тот момент, который был непосредственно перед сбоем. И единственный способ это сделать — создать аварийный дамп памяти Windows 10.
Причины появления ошибок в Windows 10 очень разнообразны:
— несовместимость подключаемых устройств;
— новые обновления Windows 10;
— несовместимость устанавливаемых драйверов;
— несовместимость устанавливаемых приложений;
— и прочие причины.
Как настроить дамп памяти в Windows 10?
Для того чтобы настроить аварийный дамп памяти Windows 10 необходимо придерживаться следующих действий:
1. Правой кнопкой мыши кликаем на пуск Windows 10. В появившемся контекстном меню выбираем пункт «Система».
2. В окне «Система» в верхнем углу слева выбираем «Дополнительные параметры системы».
3. В окне «Свойства системы» в пункте «Загрузка и восстановление» нажимаем «Параметры».
Тут и происходит настройка аварийного дампа памяти Windows 10.
Настраивая дамп памяти можно не пренебрегать следующими рекомендациями:
— Поставить галочку на «заменить существующий файл дампа». Учитывая тот факт, что данные могут весить десятки, а то и сотни гигабайт — это очень полезно для небольших жёстких дисков;
— Запись отладочной информации. Эта функция позволит выбрать вид дамп файла;
— Выполнить автоматическую перезагрузку. Продолжение работы, после возникшей ошибки;
— Запись события в системный журнал. Информация о системном сбое будет добавлена в логи операционной системы.
Дамп памяти Windows 10 является удобным и действительно работающим методом страховки системных данных.
Зная «врага в лицо» его будет в разы проще найти и ликвидировать. Дамп памяти Windows 10 позволит выявить причину системного сбоя и скорректировать действия по ликвидации ошибки, значительно уменьшив радиус усилий и работ.
В момент критического сбоя операционная система 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 вам будет достаточно малого дампа памяти.
Теперь при возникновении 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». Скачать можно здесь.
Запустите установку и выберите, что именно нужно сделать – установить пакет на этот компьютер или загрузить для установки на другие компьютеры. Установим пакет на локальный компьютер.
Можете установить весь пакет, но для установки только инструмента отладки выберите Debugging Tools for Windows.
После установки ярлыки WinDBG можно найти в стартовом меню.
Настройка ассоциации .dmp файлов с WinDBG
Для того, чтобы открывать файлы дампов простым кликом, сопоставьте расширение .dmp с утилитой WinDBG.
- Откройте командную строку от имени администратора и выполните команды для 64-разрядной системы:
cd C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
windbg.exe –IA
для 32-разрядной системы:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x86
windbg.exe –IA - В результате типы файлов: .DMP, .HDMP, .MDMP, .KDMP, .WEW – будут сопоставлены с WinDBG.
Настройка сервера отладочных символов в 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.
Команды вводятся в командную строку, расположенную внизу окна.
Самое главное, на что нужно обратить внимание – это код ошибки, который всегда указывается в шестнадцатеричном значении и имеет вид 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:\ProgramData\dbg\sym\ntoskrnl.exe\5A9A2147787000\ntoskrnl.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)
В приведенном примере анализ указал на файл ядра ntkrnlmp.exe. Когда анализ дампа памяти указывает на системный драйвер (например, win32k.sys) или файл ядра (как в нашем примере ntkrnlmp.exe), вероятнее всего данный файл не является причиной проблемы. Очень часто оказывается, что проблема кроется в драйвере устройства, настройках BIOS или в неисправности оборудования.
Если вы увидели, что BSOD возник из-за стороннего драйвера, его имя будет указано в значениях MODULE_NAME и IMAGE_NAME.
Например:
Image path: \SystemRoot\system32\drivers\cmudaxp.sys
Image name: cmudaxp.sys
Откройте свойсва файла драйвера и проверьте его версию. В большинстве случаев проблема с драйверами решается их обнвовлением.