Что такое minidump в компьютере


minidump что это за папка? » Простые советы по работе с Windows.

minidump (малый дамп памяти) -это файл в который записывает минимальный набор данных для определения причины неожиданного сбоя компьютера. Такие как: Список загруженных драйверов, сообщение о неустранимой ошибке, ее параметры и т.д. Данный дамп памяти может помочь разобраться в причинах возникновения синих окон смерти Windows (BSoD).

Малый дамп можно найти в %systemroot%\minidump (он же C:\Windows\minidump), где имя файла обычно имеет вид: число когда возникла ошибка - xxxx-xx.dmp. Например: 020816-6031-01.dmp. В более старых версиях операционных систем названия файлов имеет формат Mini+месяц+день+год когда произошел сбор - порядковый номер файла. Например Mini121615-01.dmp. Этот файл был создан 16 декабря 2015 года и он первый файл дампа.

Minidump - это папка в которой содержаться все малые дампы памяти. Мы настоятельно не рекомендуем удалять эту папку.

Для анализа этих существует множество утилит. Например: Microsoft Kernel Debugger (Ее можно скачать с официального сайта компании Microsoft), BlueScreenView (Ее официальный сайт http://nirsoft.net).

Внимание! Файлы minidump не смогут создаваться если файл подкачки меньше 2 мб или операционная система работает без файла подкачки.

 

Просмотреть Minidump после падения системы

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

О том как включить функцию Minidump и суметь прочитать его и пойдет речь в этой статье.

1. Включить Minidump

«Пуск» — «Настройка» — «Панель управления» — «Система», переходим во вкладку «Дополнительно», в блоке Загрузка и восстановление жмем «Параметры». Внизу должен быть выбран «Малый дамп памяти» и указан каталог, где он будет храниться:

Теперь, если друг система падает в Синий Экран Смерти (BSoD), то в каталоге C:\Windows\Minidump создастся файл, в имени которого будет текущая дата.

2. Расшифровать Minidump

Для этого нам понадобится установить Debugging Tools for Windows и скачать утилиту непосредственно для расшифровки файла дампа kdfe.cmd

Когда установили Debugging Tools, копируем kdfe.cmd в корень диска C:\

Запускаем командную строку «Пуск» -«Выполнить», вписываем команду cmd

Теперь в черном окне пишем следующее: C:\kdfe.cmd C:\WINDOWS\Minidump\Mini120710-01.dmp , где «Mini120710-01.dmp» — имя вашего файла дампа.

Результат выглядит так:

В моем случае сбой системы был вызван браузером Google Chrome.

Синий экран смерти. Анализ и расшифровка дампа памяти при 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:\dump\kdfe.cmd

Выведется список всех минидампов, из папки C:\Windows\Minidump\ и скрипт предложит указать какой именно дамп будем анализироваться, либо можно самостоятельно выбрать требуемый дамп при запуске скрипта:

C:\kdfe.cmd C:\Windows\Minidump\061715-6208-01.dmp

На мой взгляд первый вариант удобнее. Пример того что выдал скрипт при анализе одного из дампов памяти:

C:\Users\алексей>C:\dump\kdfe.cmd Following crash dump files found: 1. "C:\Windows\MEMORY.DMP" 2. "C:\Windows\Minidump\021113-50887-01.dmp" 3. "C:\Windows\Minidump\033014-29842-01.dmp" 4. "C:\Windows\Minidump\050515-38610-01.dmp" 5. "C:\Windows\Minidump\050615-34803-01.dmp" 6. "C:\Windows\Minidump\051315-38672-01.dmp" 7. "C:\Windows\Minidump\052015-36629-01.dmp" 8. "C:\Windows\Minidump\052515-34538-01.dmp" 9. "C:\Windows\Minidump\052715-39374-01.dmp" 10. "C:\Windows\Minidump\052815-33119-01.dmp" 11. "C:\Windows\Minidump\060115-31824-01.dmp" 12. "C:\Windows\Minidump\060115-32385-01.dmp" 13. "C:\Windows\Minidump\060115-33945-01.dmp" 14. "C:\Windows\Minidump\060115-33977-02.dmp" 15. "C:\Windows\Minidump\060815-39343-01.dmp" 16. "C:\Windows\Minidump\061015-39062-01.dmp" 17. "C:\Windows\Minidump\061215-44475-01.dmp" 18. "C:\Windows\Minidump\061315-34991-01.dmp" 19. "C:\Windows\Minidump\061415-33680-01.dmp" 20. "C:\Windows\Minidump\061715-6208-01.dmp" 21. "C:\Windows\Minidump\061715-7940-01.dmp" Which one would you like to analyze?[1-21] 20 Analyzing "C:\Windows\Minidump\061715-6208-01.dmp", please wait... Done. Crash date: Wed Jun 17 01:28:13.148 2015 (GMT+3) Stop error code: 0x1a_31 Process name: amigo.exe Probably caused by: ntkrnlmp.exe ( nt:NNGAKEGL::`string'+7161 ) Для продолжения нажмите любую клавишу . . .

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

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

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

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Файл ошибки в папке C:WindowsMinidump

Все о Windows

Minidump или как его еще называют «малый дамп памяти» очень важная опция в системе Windows 7/8/10. Образуется он посредством критического бага, только это приводит к созданию. Его основная миссия – это проинформировать пользователя, в чем же именно скрывается причина недавнего конфликта. Исходя из данного описания, уже можно понять, что минидамп своего рода обычный список, который содержит указания всех проблемных областей.

Папка Minidump содержит сведения о критических ошибках

Что это за папка Minidump

Не все сбои вашей ОС приведут к созданию dmp-документа, в основном это глобальные баги. Размещается малый дамп памяти в директории системного диска: C:WindowsMinidump и только тут. Название самого файла несколько видоизменено, а его основа состоит из даты, когда произошла ошибка. То есть, можно увидеть что-то наподобие этого: 091117-0913-01.dmp. Главное обращайте внимание на окончание оно всегда имеет расширение DMP.

Папка Минидамп содержит dmp-файлы сбоев

Эксклюзивным моментом, который ранее не встречался, становится следующее – для создания дампа обязательно должен быть включен файл подкачки и иметь показатель в 2 Мб. Этот параметр непосредственно влияет на изготовление информационного листа и без него директория просто не появится.

Как определить ошибку в минидамп-листе

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

Чем открыть и просмотреть .dmp?

К сожалению нельзя так просто взять и открыть данный лист. В нем хранится информация, полностью состоящая из прямых ссылок на неработающие элементы. Для их отслеживания потребуется прибегнуть к помощи специальных инструментов. Корпорация Майкрософт анонсировала Microsoft Kernel Debugger для этой цели. Ее можно скачать, посетив официальную страницу. Но также есть и другие, к примеру, BlueScreenView или Debugging Tools.

Программа BlueScreenView

Бесплатное распространение утилит очень кстати, а разобраться с ними сможет любой. Для начала инсталлируем их на свой системный диск С. Далее открываете через ярлык на рабочем столе. Сверху среди множества возможных действий находите меню, отвечающее за выбор файлов. Оно может скрываться в опциях. Напоминаю, корректный путь такой: C:WindowsMinidump.  Остается только кликнуть «ОК». Не перепутайте нужный вам объект с другими, ведь их может быть два-три, поэтому смотрите на число.

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

И напоследок наглядная видео-инструкция по работе с анализом DMP-файлов в Windows и исправлением критических ошибок.

Мне нравитсяНе нравится

Чтение файлов малого дампа памяти - Windows Client

  • Чтение занимает 5 мин

В этой статье

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

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

Файлы малого дампа памяти

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

  • Сообщение об ошибке, его параметры и другие данные
  • Список загруженных драйверов
  • Контекст процессора (ПРКБ) для процессора, который прекратил работу
  • Сведения о процессе и контекст ядра (ЕПРОЦЕСС) для процесса, который остановился
  • Сведения о процессе и контекст ядра (ЕСРЕАД) для потока, который остановил
  • Стек вызовов режима ядра для потока, который остановился

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

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

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

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

Примечание

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

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

  2. Дважды щелкните значок система, а затем — Дополнительные параметры системы.

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

  4. В списке запись отладочной информации выберите Малый дамп памяти (64 КБ).

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

Используйте средство проверки дампа (Dumpchk.exe), чтобы прочитать файл дампа памяти или убедиться, что файл был создан правильно.

Примечание

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

Дополнительные сведения о том, как использовать средство проверки дампа в 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 Files\Debugging Tools for Windows

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

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

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

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

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

  2. Перейдите в папку средства отладки для Windows. Для этого введите в командной строку следующую команду и нажмите клавишу ВВОД:

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

    windbg -y SymbolPath -i ImagePath -z DumpFilePath 

    или

    kd -y SymbolPath -i ImagePat -z *DumpFilePath 

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

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

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

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

  • Содержимое папки i386 на компакт-диске Windows копируется в C:\Windows\I386 папку.
  • Файл дампа имени C:\Windows\Minidump\Minidump.dmp .

Пример 1:

kd -y srv*c:\symbols*http://msdl.microsoft.com/download/symbols -i c:\windows\i386 -z c:\windows\minidump\minidump.dmp 

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

windbg -y srv*c:\symbols*http://msdl.microsoft.com/download/symbols -i c:\windows\i386 -z c:\windows\minidump\minidump.dmp 

Проверка файла дампа

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

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

Примечание

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

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

C:\Program Files\Debugging Tools for Windows\Debugger.chm

Примечание

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

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

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

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

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

dump c:\windows\minidump\minidump.dmp 

Настройка minidump Windows 10

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

Где находится minidump

minidump находится в каталоге C:\Windows\minidump или C:\Winnt\minidump в зависимости от вашей версии ОС и имеют имена файлов, такие как «Mini031120-01.dmp» — 03 — это месяц, 11 — день, 20 — год, а 01 — номер файла дампа.

Windows 10 создает только minidump файл

Термин eMMC — сокращение от «Embedded Multi-Media Controller» («Встроенный мультимедийный контроллер») и относится к пакету, состоящему из флэш-памяти и контроллера.

Если файл минидамп сохраняется в каталог %systemroot%\minidump, а не в стандартное расположение C:\windows\minidump. То эта проблема вызвана тем, что из-за управления питанием на устройствах SD eMMC, Windows всегда создает дамп и игнорирует параметры дампа памяти, настроенные администратором.

Чтобы переопределить сохранение по умолчанию, на устройстве должен быть настроен специальный параметр реестра.

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

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

1. Нажмите клавишу Windows + R. В диалоговом окне «Выполнить» введите «control system» и нажмите «Enter», открываем «Дополнительные параметры системы» > «Загрузка и восстановление». Для параметра «Запись отладочной информации» должно быть задано «Дамп памяти ядра» или «Полный дамп памяти».

Настройка minidump windows 10

2. Затем перейдите к запуску редактора реестра, чтобы создать и настроить следующий раздел реестра:
ForceF0State: REG_DWORD: 0x1

Этот параметр реестра позволяет записать файл дампа.

Перейдите к пути реестра:
HKLM\SYSTEM\CurrentControlSet\services\sdbus\Parameters\

  • Затем щелкните правой кнопкой мыши в пустое место на правой панели
  • Выберите «Создать» > «DWORD» (32-бита)
  • С названием параметра ForceF0State
  • Дважды щелкните только что созданный параметр и установите для данных значение 0x1
  • Нажмите ОК.
создание параметра Dword в редакторе реестра ForceF0State значение 0x1

3. Затем создайте и настройте следующий раздел реестра:

AlwaysKeepMemoryDump: REG_DWORD: 1
Этот параметр реестра гарантирует, что файл дампа не будет удален при перезагрузке, даже если у вас мало свободного места на диске.

Перейдите к пути реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

  • Затем щелкните правой кнопкой мыши пустое место на правой панели
  • Выберите «Создать» > «DWORD» (32-бита)
  • Назовите параметр AlwaysKeepMemoryDump
  • Дважды щелкните на него и установите для параметра «Значение» 1.
  • Нажмите ОК.
Параметр AlwaysKeepMemoryDump

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

5. Перезагрузите устройство.

Что такое минидамп Windows?

Обновлено: 02.08.2020, Computer Hope

Минидамп Windows - это небольшой файл, который сохраняется на вашем компьютере каждый раз, когда компьютер неожиданно останавливается, например, когда вы получаете BSoD. Этот файл хранится в каталоге C: \ Windows \ minidump или C: \ Winnt \ minidump в зависимости от вашей версии Windows. Примером имени файла может быть «Mini030409-01.dmp». В этом примере 03 - это месяц, 04 - день, 09 - год и -01 - номер файла дампа.

Как просмотреть минидамп Windows

Файлы минидампа Windows можно прочитать с помощью утилиты dumpchk , входящей в состав Windows 2000 и средств поддержки Windows XP. Дополнительные сведения см. В справочнике по командам dumpchk .

Как выглядит минидамп Windows?

Откройте пример минидампа Windows.

Настройка параметров минидампа Microsoft Windows

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

  1. Откройте панель управления
  2. Откройте систему .
  3. В окне Свойства системы щелкните вкладку Advanced .
  4. Нажмите кнопку Settings под Startup and Recovery .
  5. В этом окне вы можете изменить место сохранения этого файла и желаемый размер дампа. Изменение размера этого дампа может быть полезно, если вы часто сталкиваетесь с ошибкой, а небольшой дамп не дает вам всей необходимой информации.

Дамп, Условия операционной системы

.

файлов минидампа - приложения Win32

  • 2 минуты на чтение

В этой статье

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

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

Текущие версии Microsoft Office и Microsoft Windows создают файлы минидампа для анализа сбоев на компьютерах клиентов.

Следующие функции DbgHelp используются с файлами минидампа.

MiniDumpCallback
MiniDumpReadDumpStream
MiniDumpWriteDump

.

Посмертная отладка вашего приложения с помощью минидампов и Visual Studio .NET

Сводка : Если ваше приложение дает сбой на сайте клиента, вы можете отлаживать его постфактум с помощью минидампов и отладчика Microsoft® Visual Studio® NET. В этой статье описывается, как работают минидампы, как заставить ваше приложение создавать их при сбое и как читать их обратно с помощью Visual Studio .NET. Минидампы являются ключом к программе отчетов об ошибках Microsoft для повышения надежности операционной системы Windows и таких приложений, как Visual Studio.СЕТЬ. В этой статье также описывается, как использовать сервер символов Microsoft для автоматического поиска символов для компонентов системы. В этой статье предполагается, что вы знакомы с программированием на Win32 и C ++.

Содержание

Что такое минидамп?

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

С первых дней существования Windows NT программа «Доктор Ватсон» могла создавать файлы аварийного дампа с расширением .dmp . Однако они оказались не так полезны, как должны были быть, из-за двух проблем:

  1. Они были огромными. Дамп приложения включал в себя каждый байт всего пространства процесса, поэтому сбой в чем-то простом, например в Блокноте, будет иметь размер в несколько мегабайт, а сбой в чем-то вроде Word может достигать многих сотен мегабайт.Файлы были слишком большими для отправки по электронной почте или FTP.
  2. Их содержание не обязательно было полезным. Доктор Ватсон был, по сути, JIT-отладчиком, и отладчику сложно получить полный путь к загруженному модулю. Полные отладчики, такие как отладчик Visual Studio, выполняют ряд шагов, чтобы получить пути, но «Доктор Ватсон» этого не сделал. Обычно это приводило к бесполезным названиям модулей, таким как MOD0000 и так далее.

Минидампы были разработаны для решения этих проблем несколькими способами:

  • Вместо сохранения всего пространства процесса сохраняются только определенные разделы.Нет смысла сохранять копии таких модулей, как Kernel32.dll ; если указан номер версии, легко получить копию с компакт-диска Windows. Фактическая куча памяти приложения по умолчанию не сохраняется в минидампе; нет необходимости отлаживать удивительно высокий процент сбоев. Однако вы можете сохранить кучу, если вам нужно.
  • Код сохранения минидампа предназначен для получения точной и полной информации о модулях, включая их имена, пути, информацию о версии и внутренние временные метки.
  • Код сохранения минидампа также получает список потоков, их контексты (то есть наборы регистров) и память за их стеками.
  • Сжимается весь файл, что еще больше уменьшает его размер. Размер минидампа для Блокнота в Windows XP составляет около 6К, что почти в 300 раз меньше, чем предыдущий аварийный дамп того же процесса.

Примечание : Мини-дампы режима ядра, которые создаются Windows XP после того, как компьютер перестает отвечать, также существуют, но в этой статье рассматриваются более распространенные мини-дампы пользовательского режима.

Создание минидампа

Есть три способа создать минидамп:

  • Добавьте код в собственное приложение, чтобы написать минидамп, если в приложении есть необработанное исключение.
  • В интегрированной среде разработки Visual Studio .NET щелкните «Сохранить дамп» в меню «Отладка» во время отладки приложения.
  • Ничего не делать.

Первый вариант более подробно рассматривается в следующих разделах.

Второй вариант работает только на рабочей станции с уже настроенным отладчиком, что, вероятно, полезно только внутри организации (например, с другим разработчиком или тестировщиком).Если вы отлаживаете сбой с помощью Visual Studio .NET, вы можете затем нажать «Сохранить дамп как» в меню «Отладка». Вы можете сохранить как минидамп или минидамп с кучей. Вам не нужны какие-либо символы или PDB, настроенные для сохранения файла дампа; однако они понадобятся вам позже, чтобы прочитать его.

Третий вариант работает только в Windows XP, которая автоматически создает минидамп, если приложение имеет необработанное исключение и не настроен отладчик JIT. Кроме того, минидамп отправляется напрямую в Microsoft, поэтому у вас не будет возможности определить, почему.

Проблемы сборки

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

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

Что касается вывода, создание отладочной информации для сборок выпуска имеет небольшой эффект. PDB, занимающий некоторое пространство на машине сборки, создается, а двоичный файл будет на несколько сотен байт больше, чтобы записать имя PDB в каталог отладки в PE-файле. Вы не должны предоставлять клиентам PDB; это может позволить клиентам более легко реконструировать ваше приложение.

Написание минидампа с помощью MiniDumpWriteDump

Ключевым API для сохранения минидампа является MiniDumpWriteDump , который экспортируется из Dbghelp.dll , распространяемой библиотеки DLL, поставляемой с Platform SDK. Убедитесь, что вы используете Windows XP версии 5.1.2600; в более ранних бета-версиях и версиях-кандидатах были проблемы с API, а версии 5.0.x относятся к Windows 2000 и не экспортируют функцию. Если у вас более ранняя версия, чем 5.0, то она входит в пакет Systems Debugger (включая WinDbg и т. Д.) И не подлежит распространению.

Чтобы вызвать API, необходимо отловить сбой, установив обработчик необработанных исключений с помощью API SetUnhandledExceptionFilter . Это позволяет вызывать функцию фильтра практически в любой момент, когда в приложении возникает необработанное исключение. В некоторых необработанных исключениях, таких как двойной сбой стека, операционная система немедленно завершает работу приложения без вызова фильтра или JIT-отладчика.

В вашей функции фильтрации вы должны загрузить Dbghelp.dll . Это не так просто, как вызвать LoadLibrary ; как и в Windows 2000, вы получите доступ к каталогу из каталога System32 , который не имеет правильного экспорта. Пример кода в прикрепленном файле пытается загрузить из того же места, что и EXE. Установите правильную версию Dbghelp.dll в тот же каталог, что и EXE; если это не сработает, код возвращается к простой LoadLibrary , которая будет работать только в том случае, если приложение запущено в Windows XP.

После загрузки DLL проверяется указанный экспорт; если все правильно, затем создается файл с соответствующим именем, например, сохраняется в каталоге Temp и используется имя приложения с расширением .dmp . Затем этот дескриптор передается в сам API с некоторой дополнительной информацией, такой как идентификатор процесса и тип файла дампа. В примере используется MiniDumpNormal . Вы можете захотеть или-in значение флага MiniDumpWithDataSegs , что эквивалентно опции Minidump With Heap в отладчике Visual Studio.Это приводит к значительно большему размеру файлов дампа.

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

Чтобы использовать предоставленный пример кода, добавьте файл mdump.h и объявите один объект MiniDumper в глобальной области. Его конструктор принимает аргумент, который должен быть базовым именем файла минидампа. Добавьте в проект mdump.cpp .Для успешной работы необходимо иметь правильный файл Dbghelp.dll в том же каталоге, что и EXE.

Вы не можете отладить код, записывающий минидамп, с помощью отладчика (в примере кода Minidumper :: TopLevelFilter ). Если к процессу подключен отладчик, то фильтр необработанных исключений никогда не будет вызываться. Если у вас возникнут проблемы, вам нужно будет использовать отладку MessageBox .

Чтение минидампа с помощью Visual Studio .NET

В этом разделе используется пример минидампа, созданного вручную из Блокнота в Windows 2000 и отладки в Windows XP.

Запустите Visual Studio .NET и в меню Файл выберите Открыть решение. Измените раскрывающееся меню Тип файлов на Файлы дампа ( * .dmp ; * .mdmp ), перейдите к минидампу и создайте проект по умолчанию, нажав «Открыть».

Чтобы запустить дамп с отладчиком, нажмите F5. Это предоставит вам информацию, чтобы начать работу. Отладчик создает поддельный процесс; в окне вывода отображаются различные сообщения о загрузке модуля. Отладчик воссоздает только состояние аварийных процессов.После отображения предупреждения о том, что EXE-файл не содержит отладочной информации, отладчик останавливается из-за сбоя пользователя, такого как нарушение прав доступа. Если вы затем изучите окно «Стек вызовов», вы заметите отсутствие символов и полезной информации.

Рис. 1. Исходный стек без символов

Для чтения минидампа обычно требуются копии задействованных двоичных файлов. Чтобы найти нужные двоичные файлы, откройте окно «Модули».

Рисунок 2.Начальные модули без двоичных файлов

На рис. 2 показан пример Блокнота и демонстрируются две вещи. Во-первых, пути к двоичным файлам отмечены звездочками, которые обозначают путь на рабочей станции пользователя, но двоичный файл не может быть найден в этом месте на вашем компьютере. Во-вторых, сообщения читают «Соответствующий двоичный файл не найден» в поле информации. Ключ к поиску совпадающих двоичных файлов - это посмотреть на поле Версия и имя файла. В этом примере версия большинства системных файлов - 2195, что означает Windows 2000.Однако он не сразу указывает на точный пакет обновления (SP) или исправление качества (QFE). Дополнительные сведения см. В базе данных справки DLL по этой ссылке.

На этом этапе вам необходимо найти компакт-диск с операционной системой Windows или рабочую станцию ​​пользователя с правильными версиями и скопировать правильные версии в каталог. Обычно нет необходимости искать каждый двоичный файл, который был в процессе, но важно найти каждый двоичный файл, который присутствует в каждом соответствующем стеке вызовов.Часто это касается как двоичных файлов операционной системы (например, Kernel32.dll ), так и двоичных файлов вашего приложения (в этом примере Notepad.exe ).

Когда вы нашли биты и скопировали их в локальный каталог, в меню «Отладка» щелкните «Остановить отладку». В обозревателе решений щелкните правой кнопкой мыши значок проекта и выберите в контекстном меню пункт Свойства. Вы попадете на страницу отладки. Заполните аргументы команды: MODPATH , за которым следует знак равенства, а затем список разделенных точками с запятой мест для поиска двоичных файлов.В этом примере это:

 MODPATH = m: \ sysbits 

После задания пути нажмите F5, чтобы перезагрузить минидамп. MODPATH повторно использует аргумент команды, чтобы получить значение отладчику; в будущей версии Visual Studio .NET может быть лучший способ настройки этого параметра, возможно, в качестве параметра в диалоговом окне «Свойства».

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

Рисунок 3. Модули с двоичными файлами

Вместо сообщения « Не найдено подходящего двоичного файла » теперь используется комбинация « Не удается найти или открыть требуемый файл DBG » или « Нет загруженных символов ». Первое сообщение возникает с системными DLL, которые используют DBG для своей отладочной информации. Второе сообщение возникает для библиотек DLL, использующих PDB. Получение соответствующих двоичных файлов не обязательно улучшит ваш стек вызовов; вам также нужна соответствующая им отладочная информация.

Метод A: трудные символы

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

Соответствие отладочной информации

найти системные символы можно здесь.Вы также можете найти системные символы на компакт-диске Support, который поставляется с операционными системами Windows NT Server и Windows 2000 Server. В этом примере они были скопированы в расположение двоичных файлов. В реальных случаях в списке будут бинарные файлы сторонних разработчиков, поэтому вам потребуются PDB для них. Также в этом примере были скопированы DBG и PDB для Блокнота, потому что это был образец приложения.

После того, как вы нажмете Stop Debugging в меню Debug, нажатие F5 отобразит стек вызовов, как показано на рисунке 4.Вы можете обнаружить, что по мере добавления новых двоичных файлов и отладочной информации ваш стек вызовов будет меняться. Этого следовало ожидать; стек вызовов может быть точно обработан только с помощью отладочной информации, поэтому по мере добавления дополнительной информации ваш стек станет более точным, что часто приводит к появлению дополнительных кадров, которых не было в оригинале.

В этом примере сбоя не было. В реальных случаях у вас будет достаточно информации, чтобы определить причину примерно 70% сбоев ваших пользователей.Кроме того, этот стек был создан с разделенными символами, которые Microsoft поставляет для системных компонентов, поэтому не было информации о номерах строк. Для ваших собственных двоичных файлов с полными PDB вы получите еще более богатый стек.

Рисунок 4. Стек вызовов с символами и двоичными данными

Серверы Symbol

Если вы имеете дело с большим количеством минидампов и выполняете общую отладку, хранение и доступ ко всем двоичным файлам и файлам PDB / DBG может быть затруднительным. Windows NT разработала технологию, известную как сервер символов, которая изначально задумывалась как хранилище символов, но была расширена для поддержки поиска двоичных файлов.Отладчик Windows NT был первым инструментом, который поддерживал это, но Visual Studio .NET также делает это как недокументированную функцию. Дополнительную информацию о сервере символов см. Здесь.

Вы также можете получить символы с сервера символов Microsoft. Эти символы будут кэшироваться и индексироваться локально для вас.

Метод Б. Простые символы: использование Symbol Server

Сначала перейдите по этой ссылке и загрузите инструменты отладки. Вам потребуется Symsrv.dll , который должен быть в пути.Вы можете скопировать его рядом с devenv.exe или в каталог System32 , чтобы предоставить Visual Studio .NET доступ к нему. После копирования Symsrv.dll вы можете безопасно удалить инструменты отладки. Вам также нужно будет создать локальный каталог. В этом примере создайте локальный каталог как C: \ localstore .

В диалоговом окне «Свойства проекта» установите для параметра «Путь к символу» на странице «Отладка» значение:

.
 SRV * c: / localstore * http: // msdl.microsoft.com/download/symbols 

Эта строка сообщает отладчику использовать сервер символов для получения символов и создания локального сервера символов, на который они будут скопированы. Теперь, когда вы нажимаете F5 на минидампе, символы копируются с веб-сайта Microsoft, копируются в локальное хранилище, а затем используются отладчиком. После того, как вы сделаете это в первый раз, ваша производительность будет выше, потому что они будут извлечены из локального хранилища, а не из Интернета.

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

 c: \ drop \ build \ myapp; SRV * c: \ localstore * http: //msdl.microsoft.com/download/symbols 

Поскольку сервер символов является недокументированной функцией Visual Studio .NET, отчеты об ошибках отсутствуют. Если синтаксис неверен или Symsrv.dll не находится на пути, символы не будут загружены с ошибкой « Нет загруженных символов ».Вы также можете использовать серверы символов для хранения и извлечения двоичных файлов, но синтаксис MODPATH должен использовать symsrv * symsrv.dll * вместо SRV * .

Примечание : Сервер символов Microsoft не содержит двоичных файлов, но любые серверы символов, которые вы создаете, могут.

Серверы

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

Как Microsoft использует минидампы

Microsoft уже более года использует минидампы для улучшения качества своих приложений. Microsoft Internet Explorer 5.5 и Microsoft Office XP были первыми продуктами, которые поставлялись с новым Dr. Watson, служебной программой, которая обнаруживает, когда приложение перестает отвечать, создает минидамп и спрашивает пользователя, хочет ли он отправить информацию в Microsoft. .

Если пользователь нажимает «Отправить отчет об ошибках», «Доктор Ватсон» создает и отправляет минидамп на сервер на веб-сайте Microsoft.Утилита выполняет запрос пользователя и сохранение минидампа в другом процессе, порожденном процессом сбоя. Это снижает требования к аварийному приложению, увеличивая шансы получить действительный минидамп от пользователя.

Дальнейшие улучшения

На стороне сервера минидампы анализируются на области схожих сбоев в зависимости от того, где произошел сбой и в каком компоненте. Это дает статистику продуктовых групп о том, как часто происходит сбой приложения и как часто происходит сбой.Команды также получают мини-дампы аварий для дальнейшего расследования. В некоторых случаях, когда сбой полностью понятен, пользователи автоматически перенаправляются на веб-страницу, которая содержит информацию об известном обходном пути или исправление для устранения проблемы. После выпуска Internet Explorer 5.5 и Office XP многие другие группы разработчиков используют аналогичную технологию для сбора информации о сбоях. Это также стандартная часть Windows XP.

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

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

Заключение

Minidumps - это новая технология для отладки портированных сбоев на рабочих станциях пользователей. К существующим приложениям легко добавить код, чтобы автоматически создавать их при возникновении необработанного исключения. Visual Studio .NET может легко прочитать их, чтобы воссоздать сбой и позволить разработчику отладить проблему. Сервер символов может быть использован, чтобы упростить поиск системных символов для помощи в этом анализе.

Лицензия

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

.

Чтение небольших файлов дампа памяти - Windows Client

  • 6 минут на чтение

В этой статье

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

Исходная версия продукта: Windows 10 - все выпуски, Windows Server 2012 R2
Оригинальный номер базы знаний: 315263

Файлы малого дампа памяти

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

  • Сообщение 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. Щелкните вкладку Advanced , а затем щелкните Settings в разделе Startup and Recovery .

  4. В списке Записать отладочную информацию щелкните Малый дамп памяти (64 КБ) .

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

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

Примечание

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

Для получения дополнительной информации о том, как использовать утилиту проверки дампа в 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) или Kernel Debugger (KD.exe) для чтения небольших файлов дампа памяти. WinDbg и KD.exe включены в последнюю версию пакета Debugging Tools for Windows.

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

C: \ Program Files \ Инструменты отладки для Windows

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

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

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

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

  1. Щелкните Start , щелкните Run , введите cmd , а затем щелкните OK .

  2. Перейдите в папку «Инструменты отладки для Windows». Для этого введите в командной строке следующее и нажмите клавишу ВВОД:

      cd c: \ program files \ инструменты отладки для windows  
  3. Чтобы загрузить файл дампа в отладчик, введите одну из следующих команд и нажмите клавишу ВВОД:

      windbg -y SymbolPath -i ImagePath -z DumpFilePath  

    или

      kd -y SymbolPath -i ImagePat -z * DumpFilePath  

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

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

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

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

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

Образец 1:

  kd -y srv * c: \ symbols * http: //msdl.microsoft.com/download/symbols -i c: \ windows \ i386 -z c: \ windows \ minidump \ minidump.dmp  

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

  windbg -y srv * c: \ symbols * http: //msdl.microsoft.com/download/symbols -i c: \ windows \ i386 -z c: \ windows \ minidump \ minidump.dmp  

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

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

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

Примечание

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

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

C: \ Program Files \ Инструменты отладки для Windows \ Debugger.chm

Примечание

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

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

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

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

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

  дамп c: \ windows \ minidump \ minidump.dmp  
.

MINIDUMP_TYPE (minidumpapiset.h) - приложения Win32

  • 4 минуты на чтение

В этой статье

Определяет тип информации, которая будет записана в файл минидампа Функция MiniDumpWriteDump.

Важно

Код мини-дампа претерпел значительные изменения за годы, прошедшие с момента его создания. Многие из константы, перечисленные на этой странице, были добавлены позже и доступны не во всех версиях DbgHelp.dll. Те, которых не было в исходном коде, помечаются соответствующим образом вместе с версией DbgHelp.dll, которая они впервые были реализованы в. Перечисленные номера версий соответствуют Инструменты отладки Для выпусков Windows и не применяются к копиям DbgHelp.dll, интегрированным в Windows. Видеть Версии DbgHelp для более подробной информации.

Синтаксис

  typedef enum _MINIDUMP_TYPE { MiniDumpNormal, MiniDumpWithDataSegs, MiniDumpWithFullMemory, MiniDumpWithHandleData, MiniDumpFilterMemory, MiniDumpScanMemory, MiniDumpWithUnloadedModules, MiniDumpWithIndirectlyReferencedMemory, MiniDumpFilterModulePaths, MiniDumpWithProcessThreadData, MiniDumpWithPrivateReadWriteMemory, MiniDumpWithoutOptionalData, MiniDumpWithFullMemoryInfo, MiniDumpWithThreadInfo, MiniDumpWithCodeSegs, Минидамп без вспомогательного состояния, MiniDumpWithFullAuxiliaryState, MiniDumpWithPrivateWriteCopyMemory, MiniDumpIgnoreInaccessibleMemory, MiniDumpWithTokenInformation, MiniDumpWithModuleHeaders, MiniDumpFilterTriage, MiniDumpWithAvxXStateContext, MiniDumpWithIptTrace, MiniDumpScanInaccessiblePartialPages, MiniDumpValidTypeFlags } MINIDUMP_TYPE;  

Константы

Имя Описание
MiniDump Нормальный Включите только информацию, необходимую для отслеживания трассировки стека для всех существующих потоков в процессе.
MiniDumpWithDataSegs Включите разделы данных из всех загруженных модулей. Это приводит к включению глобальных переменных, которые
могут значительно увеличить размер файла минидампа. Для управления по модулям используйте значение перечисления
ModuleWriteDataSeg из
MODULE_WRITE_FLAGS.
MiniDump с полной памятью Включить в процесс всю доступную память. Необработанные данные памяти включены в конце, так что начальные структуры
могут отображаться напрямую без необработанной информации о памяти.Эта опция может привести к очень большому файлу
.
MiniDumpWithHandleData Включить высокоуровневую информацию об дескрипторах операционной системы, которые активны при создании минидампа
.
MiniDumpFilterMemory Память стека и резервного хранилища, записанная в файл минидампа, должна быть отфильтрована, чтобы удалить все значения указателя, кроме
, необходимые для восстановления трассировки стека.
MiniDumpScanMemory Память стека и резервного хранилища следует сканировать на предмет указателей на модули в списке модулей.Если на модуль
ссылается стек или память резервного хранилища, член ModuleWriteFlags из
, структура MINIDUMP_CALLBACK_OUTPUT имеет значение
и имеет значение ModuleReferencedByMemory .
MiniDumpWithUnloadedModules Включить информацию из списка модулей, которые были недавно выгружены, если эта информация поддерживается
операционной системой.

Windows Server 2003 и Windows XP: Операционная система не хранит информацию о выгруженных модулях до
Windows Server 2003 с пакетом обновления 1 и Windows XP с пакетом обновления 2.

DbgHelp 5.1: Это значение не поддерживается.

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

DbgHelp 5.1: Это значение не поддерживается.

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

DbgHelp 5.1: Это значение не поддерживается.

MiniDumpWithProcessThreadData Включить полную информацию о процессах и потоках из операционной системы.

DbgHelp 5.1: Это значение не поддерживается.

MiniDumpWithPrivateReadWriteMemory Просканируйте виртуальное адресное пространство для включения PAGE_READWRITE памяти.

DbgHelp 5.1: Это значение не поддерживается.

MiniDumpБез дополнительных данных Уменьшите объем выгружаемых данных, удалив области памяти, которые не являются необходимыми для соответствия критерию
, указанному для дампа. Это позволяет избежать сброса памяти, которая может содержать данные, которые являются личными для пользователя.
Однако это не гарантия отсутствия личной информации.

DbgHelp 6.1 и более ранние версии: Это значение не поддерживается.

MiniDumpWithFullMemoryInfo Включить информацию об области памяти. Для получения дополнительной информации см.
MINIDUMP_MEMORY_INFO_LIST.

DbgHelp 6.1 и более ранние версии: Это значение не поддерживается.

MiniDumpWithThreadInfo Включить информацию о состоянии потока. Для получения дополнительной информации см.
MINIDUMP_THREAD_INFO_LIST.

DbgHelp 6.1 и более ранние версии: Это значение не поддерживается.

MiniDumpWithCodeSegs Включите весь код и связанные с кодом разделы из загруженных модулей для захвата исполняемого содержимого.Для управления по модулю
используйте значение перечисления ModuleWriteCodeSegs из
MODULE_WRITE_FLAGS.

DbgHelp 6.1 и более ранние версии: Это значение не поддерживается.

Минидамп без вспомогательного состояния Выключает сбор вспомогательной вспомогательной памяти.
Минидамп с полным вспомогательным состоянием Запрашивает, чтобы поставщики вспомогательных данных включили свое состояние в образ дампа; данные о состоянии, включенные в
, зависят от поставщика.Этот параметр может привести к созданию большого дампа изображения.
MiniDumpWithPrivateWriteCopyMemory Сканирует виртуальное адресное пространство на предмет наличия памяти PAGE_WRITECOPY .

До DbgHelp 6.1: Это значение не поддерживается.

MiniDumpIgnoreInaccessibleMemory Если вы укажете MiniDumpWithFullMemory , функция
MiniDumpWriteDump завершится ошибкой, если функция
не сможет прочитать области памяти; однако, если вы включите
MiniDumpIgnoreInaccessibleMemory , функция
MiniDumpWriteDump проигнорирует ошибки чтения памяти
и продолжит создание дампа.Обратите внимание, что недоступные области памяти не включены в дамп
.

До DbgHelp 6.1: Это значение не поддерживается.

MiniDumpWithTokenInformation Добавляет данные, относящиеся к токену безопасности. Это заставит расширение "! Token" работать при обработке
дампа пользовательского режима.

До DbgHelp 6.1: Это значение не поддерживается.

MiniDumpWithModuleHeaders Добавляет данные, относящиеся к заголовку модуля.

До DbgHelp 6.1: Это значение не поддерживается.

MiniDumpFilterTriage Добавляет данные, связанные с сортировкой фильтров.

До DbgHelp 6.1: Это значение не поддерживается.

MiniDumpWithAvxXStateContext
MiniDumpWithIptTrace
MiniDumpValidTypeFlags Указывает, какие флаги действительны.

Требования

Заголовок minidumpapiset.h (включая DbgHelp.h)
Распространяемая доля DbgHelp.dll 5.1 или новее

См. Также

MiniDumpWriteDump

.

Отладка файлов минидампа OCA - драйверы Windows

  • 3 минуты на чтение

В этой статье

Online Crash Analysis (OCA) - это средство создания отчетов об ошибках Windows (WER). Ваша компания может использовать аварийные дампы OCA для анализа проблем клиентов.

Анализировать файлы дампа

Файлы дампа - это моментальный снимок состояния компьютера (или процесса) во время сбоя.

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

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

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

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

Используйте символы для сопоставления исполняемого кода с исходным кодом

Лучший способ получить доступ к совпадающим изображениям и символам - использовать сервер символов Microsoft. Символы - это данные, которые позволяют отладчику сопоставлять исполняемый код с исходным кодом. Когда вы создаете программу, символы программы обычно хранятся в файлах символов. Когда отладчик анализирует программу, ему требуется доступ к символам программы.

Файлы символов могут включать любое или все из следующего:

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

Комплект драйверов Windows (WDK) включает инструменты, которые можно использовать для уменьшения количества символов в файле символов. Файлы символов, содержащие всю информацию на уровне источника, называются полными файлами символов.Файлы символов с сокращенной информацией называются файлами символов с удаленными данными. Для получения дополнительной информации см. BinPlace.

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

Microsoft предоставляет сервер символов в Интернете, который можно использовать для анализа модулей Windows, присутствующих в файлах минидампа. Сервер включает файлы с удаленными символами для Windows и некоторых других продуктов. Microsoft добавила двоичные файлы для Windows XP и Windows Server 2003. Для анализа файлов минидампа можно использовать сервер символов Интернета и средства отладки для Windows.

Интегрировать WER в приложения

Для получения дополнительной информации об интеграции WER в приложения см. Использование WER.

Расширенная отладка драйвера [336 КБ] [PPT]

Загрузки WDK и WinDbg

Основы отладки драйвера

[WinHEC 2007; 633 KB] [PPT]

Как прочитать небольшой файл дампа памяти, созданный Windows, в случае сбоя

Заявления определения ресурсов

Отчеты об ошибках Windows

VERSIONINFO ресурс

.

Смотрите также