Синий экран смерти. Анализ и расшифровка дампа памяти при BSOD
Windows вывалился в синий экран смерти. Что делать? Однозначного ответа на этот вопрос нет, так как вариантов лечения и расшифровки синих экранов смерти великое множество. Попробую рассказать как выявить причину синего экрана и диагностировать ошибку с вероятностью, близкой к 100%, а гадание оставим синоптикам.
На прошлой неделе ремонтировал компьютер на котором вылетал синий экран смерти с разными ошибками, чаще всего BAD_POOL_CALLER — stop 0x000000c2. Диагностируется данная ошибка довольно сложно, на его примере и попытаюсь рассказать как узнать причину возникновения по синего экрана смерти.
В процессе диагностики не обойтись без анализа специального файла minidump (дамп памяти) системы. Такие файлы создаются каждый раз после сбоя работы системы и содержат информацию о том, что к этому привело. Обычно все файлы minidump при BSOD сохраняются в папку C:\Windows\Minidump. Кроме того, имя файла содержит текущую дата его создания, чтобы не путаться когда возникла ошибка, если файлов много.
Проверьте, включено ли на вашем компьютере создание файлов minidump при сбое системы.
Анализ дампа памяти. Расшифровываем minidump.
Нам понадобится установить Debugging Tools for Windows и скачать утилиту непосредственно для расшифровки файла дампа kdfe.cmd
Распаковываем скрипт kdfe.cmd и кладем его непосредственно в корень диска диска C:\ или создаем каталог C:\dump. Тут уж как вам удобнее. В командной строке пишем:
Выведется список всех минидампов, из папки C:\Windows\Minidump\ и скрипт предложит указать какой именно дамп будем анализироваться, либо можно самостоятельно выбрать требуемый дамп при запуске скрипта:
На мой взгляд первый вариант удобнее. Пример того что выдал скрипт при анализе одного из дампов памяти:
Еще одно доказательство что лучше избавляться от этих дебильных Амиго и майлру агентов. Таким же образом можно выявить и другие ошибки, приводящие к BSOD.
Существует еще одна интересная утилитка BlueScreenView, часто встречается на загрузочных флешках-реаниматорах, о которой я уже писал ранее на страницах блога, но на мой взгляд менее понятная для новичков.
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.
Комментариев: 8
Спасибо за детальное описание. Помогло.
Просто надо изменить эту утилиту.Открыть с помощью блокнота и изменить путь Debudding Tools.Там на какой то строке меняешь в двух-четырех местах вместо program files как у себя, например program files(x86).
Не помогло так как в cmd не находит выше написанное
У меня тоже была подобная ошибка при запуске
Сам догадался посмотреть сценарий и изменить
строку в файле kdfe.cmd
Вот что надо изменить и будет работать:
Я в таких случаях переустанавливал, пока диск не истерся до нечитаемого состояния. Потом линуха поставил.
Для начала, надо переписать саму ошибку, то есть например хх. 57 или что то типа того, бывают такие поломки как, полностью выход из строя жесткого диска, в таком случае никакой дамп вы уже не прочтете, у меня так было, поломка ssd диска, там было что то типа хх. 069, благо был рядом второй комп, нашел в инете расшифровку с разными ошибками и поломками, и так быстро установил причину синего экрана, после установки другого диска с системой, пока ssd был в ремонте, проблема исчезла сама собой.
Анализ креш-дампов памяти Windows
Как часто Вам приходится лицезреть экран смерти Windows (BSoD)? BSoD может возникать в разных случаях: как уже при работе с системой, так и в процессе загрузки операционной системы. Как же определить, чем вызвано появление BSoD и устранить эту проблему? Операционная система Windows способна сохранять дамп памяти при появлении ошибки, чтобы системный администратор мог проанализировать данные дампа и найти причину возникновения BSoD.
Существует два вида дампов памяти — малый (minidump) и полный. В зависимости от настроек операционной системы, система может сохранять полный или малый дампы, либо не предпринимать никаких действий при возникновении ошибки.
Малый дамп располагается по пути %systemroot%\minidump и имеет имя вроде Minixxxxxx-xx.dmp
Полный дамп располагается по пути %systemroot% и имеет имя вроде Memory.dmp
Для анализа содержимого дампов памяти следует применять специальную утилиту — Microsoft Kernel Debugger.
Получить программу и компоненты, необходимые для ее работы, можно напрямую с сайта Microsoft — Debugging Tools
При выборе отладчика следует учитывать версию операционной системы, на которой Вам придется анализировать дампы памяти. Для 32-разрядной ОС необходима 32-битовая версия отладчика, а для 64-разрядной ОС предпочтительно использовать 64-битовую версию отладчика.
Помимо самого пакета Debugging Tools for Windows, также понадобятся набор отладочных символов — Debugging Symbols. Набор отладочных символов специфичен для каждой ОС, на которой был зафиксирован BSoD. Потому придется загрузить набор символов для каждой ОС, анализировать работу которой Вам придется. Для 32-разрядной Windows XP потребуются набор символов для Windows XP 32-бит, для 64-разрядной ОС потребуются набор символов для Windows XP 64-бит. Для других ОС семейства Windows наборы символов подбираются сообразно такому же принципу. Загрузить отладочные символы можно отсюда. Устанавливать их рекомендуется по адресу %systemroot%\symbols
После установки отладчика и отладочных символов, запускаем отладчик. Окно отладчика после запуска выглядит следующим образом.
Перед анализом содержимого дампа памяти, потребуется провести небольшую настройку отладчика. Конкретно — сообщить программе, по какому пути следует искать отладочные символы. Для этого выбираем в меню File > Symbol File Path… Нажимаем кнопку Browse… и указываем папку, в которую мы установили отладочные символы для рассматриваемого дампа памяти.
Можно запрашивать информацию о требуемых отладочных символах прямо через Интернет, с публичного сервера Microsoft. Таким образом у вас будет самая новая версия символов. Сделать это можно следующим образом — в меню File > Symbol File Path… вводим: SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols
После указания пути к отладочным символам, выбираем в меню File > Save workspace и подтверждаем действие нажатием на кнопку OK.
Чтобы приступить к анализу дампа памяти, выбираем в меню File > Open Crash Dump… и выбираем требуемый для рассмотрения файл.
Система проведет анализ содержимого, по окончанию которого выдаст результат о предполагаемой причине ошибки.
Завершить отладку можно выбором пункта меню Debug > Stop Debugging
Таким образом, используя пакет Debugging Tools for Windows, всегда можно получить достаточно полное представление о причинах возникновения системных ошибок.
Анализ аварийных дампов Windows
В случае критической ошибки система останавливает свою работу, отображает синий экран смерти (BSOD), информация об ошибке и содержимое памяти сохраняется в файле подкачки. При последующей загрузке системы, на основе сохраненных данных, создается аварийный дамп c отладочной информацией. В системном журнале событий создается запись о критической ошибке.
Если критическая ошибка возникла на ранней стадии загрузки системы или в результате ошибки произошел отказ дисковой подсистемы, аварийный дамп сохранен не будет.
Аварийный дамп может быть проанализирован с помощью утилиты BlueScreenView или системного отладчика WinDbg (Debugging Tools for Windows).
Содержание
Анализ аварийного дампа утилитой BlueScreenView
Простейшим инструментом для анализа аварийных дампов является утилита BlueScreenView от NirSoft.
BlueScreenView сканирует папку с минидампами и отображает информацию по найденным отказам.
По каждому отказу отображается дата, данные об ошибке и драйвер, который предположительно вызвал отказ.
В нижней части окна отображается список загруженных в системе драйверов. Модули, к которым выполнялось обращение в момент отказа, выделены цветом, на них следует обратить особое внимание, они могут быть причиной отказа.
По двойному клику отображается дополнительная информация.
Анализ аварийного дампа отладчиком WinDbg
С помощью WinDbg из аварийного дампа можно вытащить более детальную информацию, включая расшифровку стека.
Установка Debugging Tools for Windows (WinDbg)
Microsoft распространяет WinDbg только в составе SDK, загрузить веб-установщик можно на странице загрузки.
Для анализа аварийных дампов установка SDK не требуется. Скачать Debugging Tools for Windows (WinDbg) отдельным пакетом можно здесь.
После установки, корректируем ярлык для запуска WinDbg. В свойствах ярлыка, устанавливаем флажок запуска от имени администратора. Также, в качестве рабочей папки, задаем: %SystemRoot%\Minidump.
Настройка отладочных символов
Отладочные символы содержат символические имена функций из исходного кода. Они необходимы для расшифровки и интерпретации аварийного дампа.
При первом запуске WinDbg, необходимо указать путь к отладочным символам, для этого открываем меню File, Symbol File Path, или используем комбинацию Ctrl+S.
Следующей строкой включаем загрузку отладочных символов из сети, задаем локальный путь для сохранения файлов и адрес для загрузки из интернета:
Анализ аварийного дампа
В меню выбираем File, Open Crash Dump, или нажимаем Ctrl+D.
Указываем путь к дампу %SystemRoot%\MEMORY.DMP или %SystemRoot%\Minidump\файл.dmp.
Загрузка отладочных символов из интернета может занять некоторое время.
Для получения детальной информации выполняем команду:
Дебаггер сам вам предложит ее выполнить, достаточно навести указатель мыши на ссылку и кликнуть.
В результате получаем следующий вывод:
Получение информации о проблемном драйвере
Если удалось обнаружить драйвер, в котором возникла ошибка, имя драйвера будет отображено в полях MODULE_NAME и IMAGE_NAME.
Чтобы получить путь к файлу и прочую информацию, щелкаем по ссылке на модуль:
Если полный путь к драйверу не указан, по умолчанию используется папка %SystemRoot%\system32\drivers.
Находим указанный файл, и изучаем его свойства.
Обновляем проблемный драйвер.
Аппаратные причины возникновения критических ошибок
Источником критических ошибок нередко бывают неисправности в дисковой подсистеме, или в подсистеме памяти.
Диагностика неисправностей диска
В случае ошибок дисковой подсистемы, аварийный дамп может не сохраняться.
Чтобы исключить проблемы с диском, проверяем системный журнал событий на наличие ошибок чтения и записи на диск.
Проверяем параметры S.M.A.R.T жесткого диска, получить их можно, например, с помощью программы SpeedFan.
Особое внимание обращаем на параметры: «Current Pending Sector Count» и «Uncorrectable Sector Count», ненулевые значения этих параметров сигнализируют о неисправности диска.
Ненулевое значение параметра: «UltraDMA CRC Error Count», сигнализирует о проблеме с SATA-кабелем.
Подробнее о параметрах S.M.A.R.T. читаем в статье Википедии.
Диагностика неисправностей памяти
Проблемы с памятью нередко могут стать причиной самых разнообразных глюков, включая различные синие экраны, зависания, аварийное завершение программ, повреждение реестра, повреждение файловой системы и данных.
Выявить проблемы с памятью можно с помощью утилиты Memtest86+.
Загружаем образ по ссылке, записываем на диск, загружаемся с диска, запускается тест.
Начиная с Windows Vista, в системе имеется свой тест памяти. Для его запуска нажимаем «Пуск», в строке поиска набираем «памяти«, выбираем «Средство диагностики памяти Windows».
Проблемы с памятью в некоторых случаях могут быть устранены обновлением BIOS.
Настройка параметров сохранения аварийного дампа
Для изменения параметров сохранения аварийного дампа нажимаем кнопку «Пуск», щелкаем на «Компьютер» правой кнопкой мыши, в контекстном меню выбираем «Свойства». В окне «Система» слева выбираем «Дополнительные параметры системы», в группе «Загрузка и восстановление» нажимаем кнопку «Параметры».
Чтение небольшого файла сброса памяти, созданного Windows при сбое
В этой статье описано, как изучить небольшой файл сброса памяти. Небольшой файл сброса памяти поможет определить причину сбоя компьютера.
Применяется к: Windows 10 — все выпуски, Windows Server 2012 R2
Исходный номер КБ: 315263
Если вы ищете сведения о отладки для Windows 8 или более поздней, проверьте средства отладки для Windows (WinDbg, KD, CDB, NTSD). Дополнительные сведения о небольшой свалке памяти вы можете получить в Small Memory Dump.
Небольшие файлы сброса памяти
Если компьютер сбои, как вы можете узнать, что произошло, устранить проблему и предотвратить ее снова? В этой ситуации может оказаться полезным небольшой файл сброса памяти. Небольшой файл сброса памяти содержит наименьшее количество полезных сведений, которые помогут определить причины сбоя компьютера. Файл сброса памяти содержит следующие сведения:
Для создания файла сброса памяти Windows файл paging на томе загрузки размером не менее 2 мегабайт (МБ). На компьютерах, на которых Windows Microsoft Windows 2000 или более поздней версии Windows, каждый раз при сбое компьютера создается новый файл сброса памяти. История этих файлов хранится в папке. Если возникает вторая проблема и если Windows создает второй небольшой файл сброса памяти, Windows сохраняет предыдущий файл. Windows каждому файлу предоставляется отдельное имя файла с кодированной датой. Например, Mini022900-01.dmp — это первый файл сброса памяти, созданный 29 февраля 2000 г. Windows сохраняет список всех небольших файлов сброса памяти в %SystemRoot%\Minidump папке.
Небольшой файл сброса памяти может быть полезен при ограниченном пространстве жесткого диска. Однако из-за ограниченной информации, которая включена, ошибки, которые не были непосредственно вызваны потоком, который был запущен во время проблемы, не могут быть обнаружены при анализе этого файла.
Настройка типа сброса
Чтобы настроить параметры запуска и восстановления для использования небольшого файла сброса памяти, выполните следующие действия.
Так как существует несколько версий microsoft Windows, на вашем компьютере могут быть другие действия. Если они есть, см. документацию по продуктам для выполнения этих действий.
Нажмите кнопку Пуск и выберите Панель управления.
Дважды щелкните систему, а затем нажмите параметры advanced system.
Щелкните вкладку Advanced, а затем нажмите Параметры в статье Startup and Recovery.
В списке сведений о отладке записи нажмите кнопку Малая свалка памяти (64k).
Чтобы изменить расположение папки для небольших файлов сброса памяти, введите новый путь в поле Dump File или в поле Каталог малых свалок в зависимости от версии Windows).
Средства для чтения небольшого файла сброса памяти
Используйте утилиту проверки сброса (Dumpchk.exe) для чтения файла сброса памяти или проверки правильности создания файла.
Утилита проверки сброса не требует доступа к отладке символов. В файлах символов находятся различные данные, которые на самом деле не нужны при запуске разных файлов, но которые могут быть очень полезны в процессе отладки.
Дополнительные сведения об использовании службы проверки сброса в Windows NT, Windows 2000, Windows Server 2003 или Windows Server 2008 см. в статье Microsoft Knowledge Base 156280: How to use Dumpchk.exe to check a memory dump file.
Или вы можете использовать средство Windows debugger (WinDbg.exe) или средство отладки ядра (KD.exe) для чтения небольших файлов сброса памяти. WinDbg и KD.exe включены в последнюю версию пакета средств отладки Windows.
Чтобы установить средства отладки, см. в странице Download and Install Debugging Tools for Windows webpage. Выберите типичную установку. По умолчанию установщик устанавливает средства отладки в следующей папке:
C:\Program Files\Debugging Tools for Windows
Эта веб-страница также предоставляет доступ к загружаемым пакетам символов для Windows. Дополнительные сведения о символах Windows см. в веб-странице Отладка с символами и веб Windows Пакеты символов.
Дополнительные сведения о параметрах файлов сброса в Windows см. в обзоре параметров файлов сброса памяти для Windows.
Откройте файл сброса
Чтобы открыть файл сброса после завершения установки, выполните следующие действия:
Нажмите кнопку Начните, нажмите кнопку Запустить, cmd введите, а затем нажмите кнопку ОК.
Изменение средств отладки для Windows папки. Для этого введите следующее в командной подсказке и нажмите кнопку ENTER:
Чтобы загрузить файл сброса в отладчик, введите одну из следующих команд и нажмите кнопку ENTER:
В следующей таблице объясняется использование держателей, используемых в этих командах.
Примеры команд
Чтобы открыть файл сброса, можно использовать следующие примеры команд. Эти команды предполагают следующие:
Пример 2. Если вместо командной строки вы предпочитаете графическую версию отладки, введите следующую команду:
Изучение файла сброса
Существует несколько команд, которые можно использовать для сбора сведений в файле сброса, в том числе следующие команды:
Справки по другим командам и полному синтаксису команд см. в документации по отладки средств справки. Документация о помощи средствам отладки можно найти в следующем расположении:
C:\Program Files\Debugging Tools for Windows\Debugger.chm
Если у вас есть проблемы, связанные с символами, используйте утилиту Symchk, чтобы убедиться, что правильные символы загружены правильно. Дополнительные сведения об использовании Symchk см. в рубрике Отладка с символами.
Упрощение команд с помощью пакетного файла
После определения команды, необходимой для загрузки свалок памяти, можно создать пакетный файл для проверки файла сброса. Например, создайте пакетный файл и назови его Dump.bat. Сохраните его в папке, где установлены средства отладки. Введите следующий текст в пакетный файл:
Если вы хотите изучить файл сброса, введите следующую команду, чтобы передать путь файла сброса в пакетный файл:
Вадим Стеркин
Я когда-то писал в блоге про kdfe.cmd и BlueScreenView. Эти решения по-разному и со своими недостатками пытались решить задачу определения драйвера, вызвавшего критическую ошибку. Теперь они не нужны.
Сегодня я расскажу про утилиту MiniDumper (скачать), которая создавалась с учетом пожеланий специалистов, оказывающих поддержку в форуме устранения критических ошибок Windows. Ее автор – мой коллега по форуму simplix, который известен своими полезными разработками.
[+] Сегодня в программе
Сведения для обычных пользователей
При запуске утилита автоматически анализирует найденные в системе дампы за последний год и открывает отчет в текстовом редакторе.
Вы также можете перетащить на исполняемый файл утилиты отдельный дамп или папку с дампами.
С именем драйвера уже можно идти в гуглояндекс. Если дело в сторонней программе или драйвере, надо начинать с их удаления / обновления. В примере выше – драйвер ЛК.
В более сложных случаях следует обращаться в форум.
Сведения для специалистов поддержки
Ряд фич MiniDumper реализован по просьбам моего коллеги по форуму Petya V4sechkin. Поэтому утилита очень удобна для техподдержки.
Возможности утилиты
Отладочная информация
При анализе утилита скачивает отладочную информацию (debug symbols) в %temp%\MiniDumper. После закрытия утилиты папка удаляется автоматически.
Если вы регулярно анализируете дампы, можете задать расположение символов с помощью системных переменных среды:
Запуск из командной строки
В качестве параметров командной строки MiniDumper принимает путь к дампу или папке с дампами, а также ключ /S для тихого режима (указывается перед путем к папке).
Заключение
QR-код с синего или зеленого экрана ведет в статью базы знаний, а там лишь общие рекомендации. Впрочем, недавно Microsoft опубликовала документацию по диагностике BSOD, где приводятся более конкретные советы для некоторых распространенных кодов ошибок, а также базовые инструкции по работе с WinDbg.
MiniDumper полностью автоматизирует анализ, упрощая задачу обычным пользователям и экономя время специалистам. Рекомендую!








