В ОС Windows очень часто случаются ошибки, даже в случае с «чистой» системой. Если обычные ошибки программ решить можно (появляется сообщение о недостающем компоненте), то исправить критические ошибки будет намного сложнее.
Что такое дамп памяти в Windows
Для решения проблем с системой обычно используют аварийный дамп памяти – это снимок части или полного объема оперативной памяти и помещение его на энергонезависимый носитель (жёсткий диск). Другими словами, содержимое оперативной памяти полностью или частично копируется на носитель, и пользователь может провести анализ дампа памяти.
Существует несколько видов дампов памяти:
Малый дамп (Small Memory Dump) – сохраняет минимальный объем ОЗУ, где находятся сведения по критическим ошибкам (BSoD) и компонентах, которые были загружены во время работы системы, например, драйвера, программы. MiniDump хранится по пути C:\Windows\Minidump.
Полный дамп (Complete Memory Dump) – сохраняется полный объем ОЗУ. Это значит, что размер файла будет равен объему оперативной памяти. Если места на диске мало, будет проблематично сохранить, например, 32 Гб. Также бывают проблемы с созданием файла дампа памяти более 4 Гб. Данный вид используется очень редко. Храниться по пути C:\Windows\MEMORY.DMP.
Дамп памяти ядра – сохраняется только информация, относящаяся к ядру системы.
Когда пользователь дойдет до анализа ошибки, ему достаточно использовать только minidamp (малый дамп). Но перед этим он обязательно должен быть включен, иначе распознать проблему не удастся. Также для более эффективного выявления аварии использование полного снимка памяти предпочтительней.
Информация в реестре
Если заглянуть в реестр Windows, то можно обнаружить некоторые полезные параметры снимков. Щелкаем сочетание клавиш Win+R, вводим команду regedit и открываем следующие ветки:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl
В данной ветке пользователь обнаружит следующие параметры:
- AutoReboot – активация или отключение перезагрузки после создания синего экрана смерти (BSoD).
- DumpFile – название видов дампов и расположение.
- CrashDumpEnabled – номер создаваемого файла, например, число 0 – дамп не создается; 1 – создание полного дампа; 2 – создание дампа ядра; 3 – создание малого дампа.
- DumpFilters – параметр позволяет добавить новые функции перед созданием снимка. Например, шифрование файла.
- MinidumpDir – название малого дампа и его расположение.
- LogEvent – активация записи сведений в системный журнал.
- MinidumpsCount – задать количество создаваемых малых дампов. (Превышение этого количества будет уничтожать старые файлы и заменять их).
- Overwrite – функция для полного дампа или системного. При создании нового снимка, предыдущий будет всегда заменяться на новый.
- DedicatedDumpFile – создание альтернативного файла снимка и указание его пути.
- IgnorePagefileSize – используется для временного расположения снимка, без использования файла подкачки.
Как это работает
При возникновении сбоя, система полностью останавливает свою работу и, если создание дампов активно, в файл, помещаемый на диск будет записана информация о возникшей проблеме. Если что-то случилось с физическими компонентами, то будет работать аварийный код, а железо, которое дало сбой будет вносить какие-либо изменения, что обязательно отразится в снимке.
Обычно файл сохраняется в выделенном для файла подкачки блоке жёсткого диска, после появления BSoD файл перезаписывается в тот вид, который пользователь сам и настроил (Малый, полный или дамп ядра). Хотя, в современных ОС участие файла подкачки не обязательно.
Как включить дампы
В Windows 7:
- Запускаем Мой компьютер и в свободном месте нажимаем правой кнопочкой мышки, выбираем пункт «Свойства».
- В открывшемся окошке о системе слева переходим в раздел «Дополнительные параметры системы».
- На следующем этапе переходим на вкладку «Дополнительно» и щелкаем по третьей кнопке «Параметры» в области «Загрузка и восстановление».
- Настраиваем параметры по вашему желанию. Обязательно должен быть выбран какой-либо тип.
- Нажимаем ОК.
В Windows 8 и 10:
Здесь процесс немного похож, в сведения о системе можно попасть точно также, как в Windows 7. В «Десятке» обязательно открываем «Этот компьютер», нажимаем по свободному месту правой кнопочкой мышки и выбираем «Свойства». По-другому туда можно попасть через Панель управления.
Второй вариант для Windows 10:
- Щелкаем клавиши Win+I, открываются параметры ОС.
- Переходим в раздел «Система».
- Слева в самом низу выбираем подраздел «О системе».
- В правой части окна опускаемся в низ и щелкаем по ссылке «Сведения о системе».
- Слева выбираем «Дополнительные параметры системы».
- Во вкладке «Дополнительно» нажимаем третью кнопку «Параметры».
- Выбираем нужный файлик и жмём ОК.
Следует заметить, что в новых версиях Windows 10 появились новые пункты, которых не было в «семерке»:
- Малый дамп памяти 256 КБ – минимальные данные о сбое.
- Активный дамп – появился в десятой версии системы и сохраняет только активную память компьютера, ядра системы и пользователя. Рекомендуется использовать на серверах.
Как удалить дамп
Достаточно зайти в каталог, где хранятся снимки памяти и попросту удалить их. Но есть и другой способ удаления – использование утилиты очистки диска:
- Открываем с помощью комбинации клавиш Win+R окошко «Выполнить» и прописываем команду cleanmgr.
- Ищем кнопочку «Очистить системные файлы» и жмём по ней.
- Если есть пункт о файлах дампов памяти, выделяем и очищаем.
Если никаких пунктов обнаружено не было, возможно дампы не были включены.
Даже если вы когда-то включали их, некоторые используемые утилиты по оптимизации системы могут легко отключить некоторый функционал. Часто много чего отключается при использовании SSD накопителей, так как многократные процедуры чтения и записи сильно вредят здоровью данного диска.
Анализ дампа памяти при помощи WinDbg
Скачиваем с официального сайта Microsoft данную программу на шаге 2, где описана «Установка WDK» — https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk.
Чтобы работать с программой еще понадобиться специальный пакет отладочных символов. Он называется Debugging Symbols, раньше его можно было скачать с сайта Microsoft, но теперь они отказались от этой идеи и придется использовать функцию программы File — «Symbol File Path», куда следует вписать следующую строчку и нажать ОК:
set _NT_SYMBOL_PATH=srv*DownstreamStore*https://msdl.microsoft.com/download/symbols
Если не сработало, пробуем вот эту команду:
SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols
Снова нажимаем пункт «File» и выбираем опцию «Save Workspace».
Утилита настроена. Остается указать путь до файлов дампов памяти. Для этого нажимаем File и щелкаем опцию «Open Crash Dump». Расположение всех дампов указано в начале статьи.
После выбора закончится анализ и проблемный компонент автоматически будет выделен. Для получения большего количества информации в этом же окошке можно ввести такую команду: !analyze –v
Анализ с помощью BlueScreenView
Загрузить инструмент бесплатно можно с этого сайта — http://www.nirsoft.net/utils/blue_screen_view.html. Установка не требует каких-то навыков. Используется только в Windows 7 и выше.
Запускаем и настраиваем. Нажмите «Настройки» (Options) – «Дополнительные параметры» (Advanced Options). Выберите первый пункт «Загружать МиниДампы из этой папки» и указываем каталог — C:\WINDOWS\Minidump. Хотя можно просто нажать кнопку «По умолчанию». Нажимаем ОК.
В главном окне должны появится файлы дампа. Он может быть, как один, так и несколько. Для его открытия достаточно нажать по нему мышкой.
В нижней части окна будут отображены компоненты, которые были задействованы на момент сбоя. Красным цветом будет выделен виновник аварии.
Теперь нажимаем «Файл» и выбираем, например, пункт «Найти в Google код ошибки + драйвер». Если нашли нужный драйвер, установите и перезагрузите компьютер. Возможно ошибка исчезнет.