Файлы дампа в отладчике Visual Studio Dump files in the Visual Studio debugger

—>

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

Исходная версия продукта:   Windows 10 — все выпуски, Windows Server 2012 R2Исходный номер КБ:   315263

Примечание

Если вы ищете сведения об отладки для Windows 8 или более поздней версии, проверьте средства отладки для Windows (WinDbg, KD, CDB, NTSD). Дополнительные сведения о небольших дампах памяти можно получить в небольшой дамп памяти.

Небольшие файлы дампа памяти

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

  • Сообщение Stop, его параметры и другие данные
  • Список загруженных драйверов
  • Контекст процессора (PRCB) для остановленного процессора
  • Сведения о процессе и контекст ядра (EPROCESS) для остановленного процесса
  • Сведения о процессе и контекст ядра (ETHREAD) для остановленного потока
  • Стек вызовов в режиме ядра для остановленного потока

Для создания файла дампа памяти Windows требуется файл подкатки на томе загрузки размером не менее 2 мегабайт (МБ). На компьютерах под управлением Microsoft Windows 2000 или более поздней версии Windows создается новый файл дампа памяти при каждом сбое компьютера. История этих файлов хранится в папке. Если возникает вторая проблема и Windows создает второй небольшой файл дампа памяти, Windows сохраняет предыдущий файл. Windows предоставляет каждому файлу отдельное имя файла в кодированной дате. Например, Mini022900-01.dmp — это первый файл дампа памяти, созданный 29 февраля 2000 г. Windows сохраняет список всех небольших файлов дампа памяти в %SystemRoot%Minidump папке.

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

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

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

Примечание

Так как существует несколько версий Microsoft Windows, на вашем компьютере могут быть разные действия. Если да, см. документацию по продукту для выполнения этих действий.

  1. Нажмите кнопку Пуск и выберите Панель управления.

  2. Дважды щелкните «Система» и выберите «Дополнительные параметры системы».

  3. Перейдите на вкладку «Дополнительные» и выберите «Параметры» в области «Запуск и восстановление».

  4. В списке сведений об отладке записи щелкните небольшой дамп памяти (64 КБ).

Чтобы изменить расположение папки для небольших файлов дампа памяти, введите новый путь в поле «Файл дампа» или в каталоге «Небольшой дамп» в зависимости от версии Windows.

Средства чтения небольшого файла дампа памяти

Используйте с помощью этой Dumpchk.exe для чтения файла дампа памяти или проверки правильности его создания.

Примечание

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

Дополнительные сведения об использовании программы проверки дампов в Windows NT, Windows 2000, Windows Server 2003 или Windows Server 2008 см. в статье 156280базы знаний Майкрософт «Использование Dumpchk.exe для проверки файла дампа памяти».

Дополнительные сведения об использовании программы проверки дампов в Windows XP, Windows Vista или Windows 7 см. в статье 315271базы знаний Майкрософт » Как использовать Dumpchk.exe для проверки файла дампа памяти.

Или можно использовать средство отладки Windows (WinDbg.exe) или отладник ядра (KD.exe) для чтения небольших файлов дампа памяти. WinDbg и KD.exe включены в последнюю версию пакета средств отладки для Windows.

Чтобы установить средства отладки, см. страницу «Загрузка и установка средств отладки для Windows». Выберите типичную установку. По умолчанию установщик устанавливает средства отладки в следующую папку:

C:Program FilesDebugging Tools for Windows

Эта веб-страница также предоставляет доступ к загружаемым пакетам символов для Windows. Дополнительные сведения о символах Windows см. в отладке с помощью символов и на веб-странице загрузки пакетов символов Windows.

Дополнительные сведения о параметрах файла дампа в Windows см. в обзоре параметров файла дампа памяти для Windows.

Открытие файла дампа

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

  1. Нажмите кнопку «Начните»,выберите «Выполнить»,cmd «Введите» и нажмите кнопку «ОК».

  2. Переехав в папку «Средства отладки для Windows». Для этого введите в командной области следующую команду и нажмите ввод:

    cd c:program filesdebugging tools for windows 
  3. Чтобы загрузить файл дампа в отладчик, введите одну из следующих команд и нажмите ввод:

    windbg -y SymbolPath -i ImagePath -z DumpFilePath 

    или

    kd -y SymbolPath -i ImagePat -z *DumpFilePath 

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

Заполнитель Объяснение
SymbolPath Локальный путь, по котором скачались файлы символов, или путь сервера символов, включая папку кэша. Так как небольшой файл дампа памяти содержит ограниченную информацию, фактические двоичные файлы необходимо загрузить вместе с символами для правильного чтения файла дампа.
ImagePath Путь к этим файлам. Файлы находятся в папке I386 на компакт-диске Windows XP. Например, путь может быть C:WindowsI386 .
DumpFilePath Путь и имя файла дампа, который вы изучаете.

Примеры команд

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

  • Содержимое папки I386 на компакт-диске Windows копируется в C:WindowsI386 папку.
  • Ваш файл дампа называется C:WindowsMinidumpMinidump.dmp .

Пример 1:

kd -y srv*c:symbols*http://msdl.microsoft.com/download/symbols -i c:windowsi386 -z c:windowsminidumpminidump.dmp 

Пример 2. Если вы предпочитаете графическую версию отладика, а не версию командной строки, введите следующую команду:

windbg -y srv*c:symbols*http://msdl.microsoft.com/download/symbols -i c:windowsi386 -z c:windowsminidumpminidump.dmp 

Изучение файла дампа

Существует несколько команд, которые можно использовать для сбора информации в файле дампа, включая следующие команды:

  • Команда !analyze -show отображает код ошибки Stop и ее параметры. Код ошибки остановки также называется кодом проверки ошибок.
  • Команда !analyze -v выводит подробные данные.
  • Команда lm N T перечисляет указанные загруженные модули. Выходные данные включают состояние и путь модуля.

Примечание

Команда расширения !drivers отображает список всех драйверов, загруженных на компьютер назначения, а также сводную информацию об использовании памяти. Расширение !drivers является устаревшим в Windows XP и более поздних версиях. Чтобы отобразить сведения о загруженных драйверах и других модулях, используйте lm команду. Команда lm N T отображает сведения в формате, похожем на старое расширение !drivers.

Справку по другим командам и полный синтаксис команд см. в документации по средствам отладки. Документацию по справке по средствам отладки можно найти в следующем расположении:

C:Program FilesDebugging Tools for WindowsDebugger.chm

Примечание

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

Упрощение команд с помощью пакетного файла

После определения команды, необходимой для загрузки дампов памяти, можно создать пакетный файл для проверки файла дампа. Например, создайте пакетный файл и назовем его Dump.bat. Сохраните его в папке, в которой установлены средства отладки. Введите в пакетный файл следующий текст:

cd "c:program filesdebugging tools for windows"  kd -y srv*c:symbols*http://msdl.microsoft.com/download/symbols -i c:windowsi386 -z %1 

Чтобы проверить файл дампа, введите следующую команду, чтобы передать путь к файлу дампа в пакетный файл:

dump c:windowsminidumpminidump.dmp 

—>

image_thumb19.png

Это маленькая заметка о том, какие шаги необходимо выполнить для получения первичной информации об исполняемом файле, ставшем возможной причиной остановки работы операционной системы Windows — Blue Screen of Death (BSOD). По умолчанию ОС Windows настроена таким образом, что при возникновении ошибки приводящей к полной остановке работы системы, автоматически создаётся аварийный дамппамяти в виде файла MEMORY.DMP. Чтобы получить доступ к информации из этого файла, нам потребуется набор отладочных утилит Debugging tools for Windows из состава Windows Software Development Kit.

Переходим по ссылке

WDK and WinDbg downloads

и скачиваем онлайн-инсталлятор/загрузчик Standalone Debugging Tools for Windows (WinDbg) – файл <font>sdksetup.exe</font>. Запускаем инсталлятор и выбираем вариант установки…

На следующем шаге  выбора компонент к установке (Select the features you want to install) отмечаем только то, что нам нужно — Debugging tools for Windows и нажимаем Install

В указанную на первом экране папку из Интернета будет загружен и установлен набор утилит.

После окончания установки находим в меню “Пуск” или на стартовом экране в группе ярлыков Windows Kits утилиту WinDbg и запускаем её с правами администратора

Если по какой-то причине ярлык найти не удалось, то можно запустить исполняемый файл из каталога установки — <font>С:Program Files (x86)Windows Kits8.1Debuggersx64windbg.exe</font>

В главном меню программы WinDbg выбираем пункты File > Symbol File Path. В открывшееся окно вставляем строку определяющую пусть к локальному каталогу символьного кэша и его онлайн-источнику:


SRV*C:Windowssymbol_cache*http://msdl.microsoft.com/download/symbols

</pre>

Сохраняем настройки, выбрав в главном меню пункты File > Save Workspace

Открываем файл дампа памяти, выбрав в меню File > Open Crash Dump

Выбираем файл MEMORY.DMP (по умолчанию расположен в каталоге <font>C:Windows</font>) и нажимаем Open

Появится информация о том, какой именно исполняемый модуль стал причиной остановки работы системы. Щёлкнув по гиперссылке <font>!analyze-v</font> можно получить более развернутую информацию о состоянии системы на момент возникновения стоп-ошибки.

Туже самую информацию можно получить и с помощью командной строки используя примерно следующую последовательность команд:


cd /d «<font>C:Program Files (x86)Windows Kits8.1Debuggersx64</font>» kd -z «<font>D:DOWNLOADSVM05MEMORY.DMP</font>» .logopen <font>C:Debuglog.txt</font> .sympath srv*C:Windowssymbol_cache*http://msdl.microsoft.com/download/symbols

</pre>

В этом примере вся информация о разборе дампа будет выгружена в читаемом виде в файл C:Debuglog.txt

Источники информации:

Информацию о проблемах, возникших при работе с ОС Windows, помогают узнать сведения на экране или файлы в памяти – дампы. В них хранятся данные о текущем состоянии процессора, ядра и других компонентов. Сохранение этих сведений нередко отключено в Виндовс 10, поэтому пользователи самостоятельно настраивают их автоматическое появление. Разберемся, для каких целей необходим дамп памяти в ОС Windows 10, какие типы бывают, как установить.

Данные «оперативки» и материалы, имеющие отношение к критической ошибке, попадают в файл. При запуске ОС появляется аварийный дамп, где сохраняется запись отладочной информации. Сбой блокирует функционирование ОС, поэтому dump – единственный способ получения данных о ней. Чем точнее в нем будет описана проблема, тем проще пользователю проанализировать ситуацию и найти способы решения по устранению недочетов в работе ОС.

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

Как работает опция? Во время запуска ОС создает и сохраняет карту секторов, которые занимает на диске файл подкачки. При сбое в работе проверяется целостность этой карты, а также компонентов структуры. Если они не нарушены, то применяются опции, которые сохраняют образ памяти, записывая данные с использованием сохраненной секторной карты.

При следующем запуске ОС диспетчер инициализирует данные, проверяет наличие в нем файлов .dmp. Далее содержимое копируется из него в файл аварийного дампа, делаются соответствующие записи.

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

  • Тапнуть кнопкой мышки по значку «Пуск».
  • В открывшемся окошке выбрать раздел «Система».
  • Далее выбрать раздел «Дополнительные параметры».
  • В открывшемся окне выбрать «Параметры».
  • Настроить аварийный дамп.

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

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

В Виндовс предусмотрены различные типы .dmp. К основным видам относятся:

  • Мини-дамп памяти – файл с минимумом данных о BSoD, процессоре, драйверах, которые работали во время появления критической ошибки. Весит 256 Кб, для извлечения информации требуется установка дополнительной утилиты, например, Blue Screen View. Minidump преимущественно пользуются непрофессионалы.
  • Дамп памяти ядра – тоже имеет небольшие размеры, но содержит более подробную информацию, чем m В нем сохраняется информация о памяти ядра, процессора или всей ОС.
  • Полный дамп памяти – копирует оперативку системы. Его размер соответствует объему оперативки, это одновременно является его плюсом и, в то же время, существенным минусом. Его размеры могут оказаться огромными, требуя невероятных размеров памяти устройства. Он недоступен на устройствах с оперативной системой 32 бита.
  • Автоматический дамп памяти – новый вид, который разработчики впервые ввели в Виндовс 8. Система самостоятельно решает, какой dump записывать, учитывая особенности сбоя, частоту его проявления.
  • Активный дамп памяти – внедрен в Виндовс 10, отсортировывает компоненты, неспособные распознать причину ошибки. Полезен для серверов и других виртуальных сервисов.

Инструмент от разработчиков 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:WindowsMinidump. Для удаления элементов minidump в каталоге Windows нужно воспользоваться встроенным инструментом системы «Очистка диска»:

  • Вызвать командную строку.
  • Ввести команду Cleanmpg.
  • Тапнуть по кнопке очищения системных файлов.
  • Найти в списке объекты, касающиеся мини-дампа, поставить галочки.
  • Начнется удаление, которое потребует некоторое время.

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

Дамп памяти в ОС Windows 10 – инструмент, помогающий диагностировать и устранять причины сбоев и появление BSoD. Если автоматическое создание и сохранение дампов памяти отключено, рекомендуется активировать их. Чаще причиной отключения файлов становятся утилиты для очистки ПК и оптимизации работы системы.

23.10.202016:501123Евгений ВерещакаИнформационный портал IT Техник

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

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

Содержание:

Типы аварийных дампов памяти 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.

  1. Откройте командную строку от имени администратора и выполните команды для 64-разрядной системы:cd C:Program Files (x86)Windows Kits10Debuggersx64windbg.exe –IAдля 32-разрядной системы:C:Program Files (x86)Windows Kits10Debuggersx86windbg.exe –IA
  2. В результате типы файлов: .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 bugcheckArg3: ffffd0003a20d528, Address of the exception record for the exception that caused the bugcheckArg4: 0000000000000000, ReservedDebugging 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!KeBugCheckExffffd000`3a20d2b0 fffff804`0117da50 : ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2 : nt!KiBugCheckDispatch+0x69ffffd000`3a20d3f0 fffff804`0117c150 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiFastFailDispatch+0xd0ffffd000`3a20d5d0 fffff804`01199482 : ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006f9 : nt!KiRaiseSecurityCheckFailure+0x3d0ffffd000`3a20d760 fffff804`014a455d : 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951 : nt! ?? ::FNODOBFM::`string'+0x17252ffffd000`3a20d8c0 fffff804`013a34ac : 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 ffffe001`0a34c600 : nt!IopSynchronousServiceTail+0x379ffffd000`3a20d990 fffff804`0117d313 : ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380 : nt!NtWriteFile+0x694ffffd000`3a20da90 00007ffb`475307da : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13000000ee`f25ed2b8 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ffb`475307da

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

FOLLOWUP_IP:nt!KiFastFailDispatch+d0fffff804`0117da50 c644242000 mov byte ptr [rsp+20h],0FAULT_INSTR_CODE: 202444c6SYMBOL_STACK_INDEX: 2SYMBOL_NAME: nt!KiFastFailDispatch+d0FOLLOWUP_NAME: MachineOwner

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

MODULE_NAME: ntIMAGE_NAME: ntkrnlmp.exe

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

1: kd> lmvm ntBrowse full module listLoaded symbol image file: ntkrnlmp.exeMapped memory image file: C:ProgramDatadbgsymntoskrnl.exe5A9A2147787000ntoskrnl.exeImage path: ntkrnlmp.exeImage name: ntkrnlmp.exeInternalName: ntkrnlmp.exeOriginalFilename: ntkrnlmp.exeProductVersion: 6.3.9600.18946FileVersion: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

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

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

Например:

Image path: SystemRootsystem32driverscmudaxp.sysImage name: cmudaxp.sys

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

Анализ дампа памяти windows 10 Redstone

windows-10-Redstone.jpg

Настраиваем дамп памяти windows 10

И так, что же такое дамп памяти в операционной системе Windows 10 Redstone. Выше я вам описал, очень частую причину при которой появляется дамп памяти системы и это синие экраны смерти. Причины их появления очень обширны:

  • Не совместимость приложений
  • Не совместимость драйверов
  • Новые обновления Windows
  • Не совместимость устройств

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

Ошибка 0x000000d1 в Windows 10 или например ошибка STOP 0x00000050, их можно продолжать часами

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

Где настраивается аварийный дамп памяти windows 10

Для начала давайте разберемся, где производится настройка, которая отвечает за аварийный дамп памяти windows 10. Щелкаете правым кликом по кнопке пуск Windows 10 и из контекстного меню выбираете пункт Система.

avariynyiy-damp-pamyati-windows-10-1.png

В открывшемся окне Система, вы в левом верхнем углу выбираете Дополнительные параметры Системы.

avariynyiy-damp-pamyati-windows-10-2.png

Именно тут и настраивается дамп памяти windows 10.  жмем пункт параметры в Загрузка и восстановление.

avariynyiy-damp-pamyati-windows-10-3.png

Из настроек, дампа памяти windows 10, хочу отметить следующие:

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

avariynyiy-damp-pamyati-windows-10-4.png

Виды дампов памяти

Давайте рассмотрим, чем же отличаются варианты записи отладочной информации

  • Малый дамп памяти 256 кб: Файлы малого дампа памяти содержат следующие сведения:

– сообщение о неустранимой ошибке, ее параметры и прочие данные;

– список загруженных драйверов;

– контекст процессора (PRCB), на котором произошел сбой;

– сведения о процессе и контекст ядра (EPROCESS) для процесса, вызвавшего ошибку;

– сведения о процессе и контекст ядра (ETHREAD) для потока, вызвавшего ошибку;

– стек вызовов в режиме ядра для потока, вызвавшего ошибку.

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

Хранится мини дамп по пути C:WindowsMinidump

  • Дамп памяти ядра > записывает только память ядра. В зависимости от объема физической памяти ПК в этом случае для файла подкачки требуется от 50 до 800 МБ или одна треть физической памяти компьютера на загрузочном томе.
  • Полный дамп памяти > ну тут и так все понятно из названия. Пишет абсолютно все, это максимальная информация о синем экране, дает сто процентную диагностику проблемы.

Располагается по пути C:WindowsMemory.dmp

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

Я советую оставлять полный дамп памяти.

damp-pamyati-windows-10-1.png

Теперь когда у вас появится синий экран, то дамп памяти windows 10, вы будите искать в папке C:Windows.

Анализ дампа памяти windows 10

Ну и естественно давайте рассмотрим вопрос, как производится анализ дампа памяти windows 10, тут все просто, переходите по ссылке чуть выше и читаете статью Как анализировать синий экран dump memory в Windows. В которой я подробнейшим образом рассказал, как вам можно узнать причину падения и краха вашей операционной системы Windows 10. Желаю вам, чтобы экраны смерти обходили ваш компьютер стороной.

Авг 18, 2016 21:59Используемые источники:

  • https://docs.microsoft.com/ru-ru/troubleshoot/windows-client/performance/read-small-memory-dump-file
  • https://blog.it-kb.ru/2014/12/22/primary-analysis-of-crash-dump-file-memory-dmp-with-stop-errors-windows-blue-screen-of-death-bsod-with-debugging-tools-windbg-sdk/
  • https://it-tehnik.ru/windows10/nastroyka/damp-pamyati.html
  • https://winitpro.ru/index.php/2019/07/12/analiz-dampa-pamyati-v-windbg/
  • http://pyatilistnik.org/analiz-dampa-pamyati-windows-10-redstone/

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
7th-studio.ru
Добавить комментарий