Что значит аварийный дамп памяти на жестком диске. Что такое дамп памяти

В разделе аварийный дамп памяти определяется следующими параметрами:

REG_DWORD -параметр AutoReboot со значением 0x1 (опция Выполнить автоматическую перезагрузку вспомогательного окна окна Свойства системы );

REG_DWORD -параметр CrashDumpEnabled со значением 0x0 , если дамп памяти не создаётся; 0x1 Полный дамп памяти ; 0x2 Дамп памяти ядра ; 0x3 Малый дамп памяти (64КБ) ;

REG_EXPAND_SZ -параметр DumpFile со значением %SystemRoot%\MEMORY.DMP (место хранения файла дампа);

REG_DWORD -параметр LogEvent со значением 0x1 (опция Записать событие в журнал окна );

REG_EXPAND_SZ -параметр MinidumpDir со значением %SystemRoot%\Minidump (опция );

REG_DWORD -параметр Overwrite со значением 0x1 (опция Заменять существующий файл окна );

REG_DWORD -параметр SendAlert со значением 0x1 (опция Отправить административное оповещение окна ).

Как система создаёт файл аварийного памяти

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

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

Сначала ядро системы проверяет состояние каждого компонента, задействованного в процессе сохранения дампа. Это делается для того, чтобы при прямой записи в секторы диска не повредить данные, лежащие вне файла. Размер файла должен быть на 1МБ больше размера физической памяти, потому что при записи информации в создаётся заголовок, в котором содержатся сигнатура аварийного и значения нескольких важнейших переменных ядра системы. Заголовок занимает меньше 1МБ , но операционная система может увеличивать (или уменьшать) размер файла подкачки не менее чем на 1МБ .

После загрузки системы Session Manager (Диспетчер сеанса Windows NT ; дисковый адрес – \WINDOWS\system32\smss.exe ) инициализирует файлы системы, используя для создания каждого файла собственную функцию NtCreatePagingFile . NtCreatePagingFile определяет, существует ли инициализируемый файл, и если да, то имеется ли в нём заголовок . Если заголовок есть, то NtCreatePagingFile посылает в Session Manager специальный код. После этого Session Manager запускает процесс Winlogon (Программа входа в систему Windows NT ; дисковый адрес – \WINDOWS\system32\winlogon.exe ), который извещается о существовании аварийного . Winlogon запускает программу SaveDump (Программа сохранения копии памяти Windows NT ; дисковый адрес – \WINDOWS\system32\savedump.exe ), которая анализирует заголовок и определяет дальнейшие действия в аварийной ситуации.

Если заголовок указывает на существование , то SaveDump копирует данные из файла в файл аварийного , имя которого задано REG_EXPAND_SZ -параметром DumpFile раздела . Пока SaveDump переписывает файл , операционная система не задействует ту часть страничного файла, в которой содержится аварийный . В это время объём виртуальной памяти, доступной для системы и приложений, уменьшается на размер (при этом на экране могут появиться сообщения, указывающие на нехватку виртуальной памяти). Затем SaveDump информирует диспетчер памяти о завершении сохранения , и тот высвобождает ту часть файла, в которой хранится , для общего пользования.

Сохранив файл , программа SaveDump делает запись о создании аварийного в журнале событий , например: «Компьютер был перезагружен после критической ошибки: 0x100000d1 (0xc84d90a6, 0x00000010, 0x00000000, 0xc84d90a6). Копия памяти сохранена: C:\WINDOWS\Minidump\Mini060309-01.dmp» .

Полный дамп памяти записывает всё содержимое памяти при возникновении неустранимой ошибки. Для этого варианта необходимо иметь на загрузочном томе файл подкачки, размер которого равен объёму всей физической оперативной памяти плюс 1МБ . По умолчанию полный памяти записывается в файл %SystemRoot%\Memory.dmp . При возникновении новой ошибки и создании нового файла полного памяти (или памяти ядра) предыдущий файл заменяется (перезаписывается). Параметр Полный дамп памяти недоступен на , на которых установлена 32-битная операционная система и 2 или более оперативной памяти.

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

Дамп памяти ядра записывает только память ядра, благодаря чему процесс записи данных в журнал при внезапной остановке системы протекает быстрее. В зависимости от объёма физической памяти в этом случае для файла подкачки требуется от 50 до 800МБ или одна треть физической памяти на загрузочном томе. памяти ядра записывается в файл %SystemRoot%\Memory.dmp .

Этот не включает нераспределённую память или память, выделенную для программ режима. Он включает только память, выделенную для ядра и аппаратно-зависимого уровня (HAL ) в Windows 2000 и более поздних версиях системы, а также память, выделенную для режима ядра и других программ режима ядра. В большинстве случаев такой является наиболее предпочтительным вариантом. Он занимает намного меньше места по сравнению с полным памяти, при этом исключая только те сектора памяти, которые, скорее всего, не связаны с ошибкой.

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

Малый дамп памяти записывает наименьший объём полезной информации, необходимой для определения причины неполадок. Для создания малого памяти необходимо, чтобы размер файла подкачки составлял как минимум 2МБ на загрузочном томе.

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

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

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

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

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

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

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

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

При возникновении следующей ошибки и создании второго файла малого памяти предыдущий файл сохраняется. Каждому дополнительному файлу даётся уникальное имя. Дата закодирована в имени файла. Например, Mini051509-01.dmp - это первый файл памяти, созданный 15 мая 2009 г. Список всех файлов малого памяти хранится в папке %SystemRoot%\Minidump .

Операционная система , несомненно, значительно надёжнее предыдущих версий, – благодаря усилиям как разработчиков Microsoft , так и разработчиков аппаратного , так и разработчиков прикладного программного . Однако аварийные ситуации – всевозможные сбои и крахи системы – неизбежны, и от того, владеет ли знаниями и навыками в их устранении, зависит, придётся ему затратить несколько минут на поиск и устранение неисправности (например, на обновление/отладку или переустановку прикладной программы, вызывающей сбой), – или несколько часов на переустановку/настройку операционной системы и прикладного программного (что не гарантирует отсутствия сбоев и крахов в дальнейшем!).

Многие администраторы пренебрегают анализом аварийных дампов Windows , считая, что работать с ними слишком трудно. Трудно, но можно: даже если, например, анализ одного из десяти окажется успешным, – усилия, потраченные на освоение простейших приёмов анализа аварийных , будут не напрасны!..

Все Windows-системы при обнаружении фатальной ошибки делают аварийный дамп (снимок) содержимого оперативной памяти и сохраняет его на жесткий диск. Существуют три типа дампа памяти:

Полный дамп памяти – сохраняет все содержимое оперативной памяти. Размер снимка равен размеру оперативной памяти + 1 Мб (заголовок). Используется очень редко, так как в системах с большим объемом памяти размер дампа будет слишком большим.

Дамп памяти ядра – сохраняет информацию оперативной памяти, касающуюся только режима ядра. Информация пользовательского режима не сохраняется, так как не несет в себе информации о причине краха системы. Объем файла дампа зависит от размера оперативной памяти и варьируется от 50 Мб (для систем с 128 Мб оперативной памяти) до 800 Мб (для систем с 8 Гб оперативной памяти).

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

НАСТРОЙКА СИСТЕМЫ

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

Для Windows Xp Для Windows 7
  1. Мой компьютер Свойства
  2. Переходите на вкладку Дополнительно;
  3. Параметры;
  4. В поле Запись отладочной информации выбираем Малый дамп памяти (64 Кб ).
  1. Правой клавишей мыши нажать на значке Компьютер из контекстного меню выберите Свойства (или комбинация клавиш Win+Pause);
  2. В левом меню щелкаем на пункт Дополнительные параметры системы ;
  3. Переходите на вкладку Дополнительно;
  4. В поле Загрузка и восстановление необходимо нажать кнопку Параметры;
  5. В поле Запись отладочной информации выбираем Малый дамп памяти (128 Кб ).

Проделав все манипуляции, после каждого BSoD в папке C:\WINDOWS\Minidump будет сохраняться файл с расширение.dmp. Советую ознакомиться с материалом «Как создать папку». Также можно установить галочку на “Заменить существующий файл дампа ”. В этом случае каждый новый аварийный дамп будет записываться поверх старого. Я не советую включать данную опцию.

АНАЛИЗ АВАРИЙНОГО ДАМПА ПАМЯТИ С ПОМОЩЬЮ ПРОГРАММЫ BLUESCREENVIEW

Итак, после появления синего экрана смерти система сохранила новый аварийный дамп памяти. Для анализа дампа рекомендую использовать программу BlueScreenView. Её можно бесплатно скачать тут. Программа довольно удобная и имеет интуитивный интерфейс. После её установки первое, что необходимо сделать – это указать место хранение дампов памяти в системе. Для этого необходимо зайти в пункт меню “Options ” и выбрать “Advanced Options ”. Выбираем радиокнопку “Load from the following Mini Dump folder ” и указываем папку, в которой хранятся дампы. Если файлы хранятся в папке C:\WINDOWS\Minidump можно нажатием кнопки “Default ”. Нажимаем OK и попадаем в интерфейс программы.

Программа состоит из трех основных блоков:

  1. Блок главного меню и панель управления;
  2. Блок списка аварийных дампов памяти;
  3. В зависимости от выбранных параметров может содержать в себе:
  • список всех драйверов находящихся в оперативной памяти до появления синего экрана (по умолчанию);
  • список драйверов находящихся в стеке оперативной памяти;
  • скриншот BSoD;
  • и другие значения, которые мы использовать не будем.

В блоке списка дамп памяти (на рисунке помечен цифрой 2) выбираем интересующий нас дамп и смотрим на список драйверов, которые были загружены в оперативную память (на рисунке помечен цифрой 3). Розовым цветом окрашены драйвера, которые находились в стеке памяти. Они то и являются причиной появления BSoD. Далее переходите в Главное меню драйвера, определяйте к какому устройству или программе они принадлежат. В первую очередь обращайте внимание на не системные файлы, ведь системные файлы в любом случае загружены в оперативной памяти. Легко понять, что на изображении сбойным драйвером является myfault.sys. Скажу, что это программа была специально запущена для вызова Stop ошибки. После определения сбойного драйвера, необходимо его либо обновить, либо удалить из системы.

Для того чтобы программа показывала список драйверов находящихся в стеке памяти во время возникновения BSoD необходимо зайти в пункт меню “Options ” кликаем на меню “Lower Pane Mode ” и выбираем “Only Drivers Found In Stack ” (или нажмите клавишу F7), а для показа скриншота ошибки выбираем “Blue Screen in XP Style ” (F8). Что бы вернуться к списку всех драйверов, необходимо выбрать пункт “All Drivers ” (F6).

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

То, что вы отключите дамп памяти, никак не повлияет на быстродействие системы. Когда вы пользуетесь компьютером, система к дампу не обращается, будь он включен или нет. Запись происходит только тогда, когда Windows «довели» до BSOD (синий экран). Длится она от силы пару секунд.

Виды дампа

Для общего развития ознакомимся с видами дампа. Их есть три: малый дамп, дамп ядра и большой . Малый дамп хранит самую главную информацию о проблеме. Разработчикам буквально приходится собирать ее по крупицам. Для малого дампа нужно выделить 2 Мб виртуальной памяти (файл подкачки).

Дамп ядра – самый распространенный вид дампа. Обычно именно эта опция задана по умолчанию. Записывает он в себя всю память, которая выделена на ядро, – состояние рабочих драйверах и данные о аппаратно-зависимом уровне. Для него нужно выделить около 30 % от общего объема ОЗУ. Например, если у вас 2 Гб DDR, значит выделяйте около 700 Мб для файла подкачки.

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

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

Выберите результат «Система ». Откроется окно. Справа вверху есть список опций, там выбирайте последнюю - «Дополнительные параметры системы ».


Инструкция по интерпретации файла малого дампа памяти .

Очень часто можно встретить вопросы, связанные с появлением синего экрана смерти (Blue Screen Of Death = BSOD ). Однако практически любой человек может самостоятельно определить причину возникновения ошибки, которая привела к появлению BSOD . Дело в том, что во время появления синего экрана на жесткий диск записывается специальный файл , который называется Малый Дамп Памяти (конечно, при условии, что его запись разрешена в настройках).

Включить запись Малого Дампа можно следующим образом:

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

2. Дважды щелкните значок Система .

3. Откройте вкладку Дополнительно и нажмите кнопку .

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

В файле малого дампа памяти записывается минимальный набор полезной информации, позволяющей определить причину неожиданного сбоя компьютера . Для этого параметра на загрузочном томе требуется файл подкачки размером не менее 2 МБ . На компьютерах с операционной системой Microsoft Windows 2000 или более поздними версиями Windows при непредвиденном сбое компьютера каждый раз создается новый файл.

При возникновении следующей ошибки и создании второго файла малого дампа памяти Windows сохраняет предыдущий файл. Windows присваивает каждому файлу отдельное имя с указанием даты. Например, Mini022900-01.dmp - это первый файл дампа памяти, созданный 29 февраля 2000 г. Список всех файлов малого дампа памяти хранится в папке %SystemRoot%\Minidump.

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

Для загрузки файлов малого дампа памяти можно воспользоваться служебной программой Dump Check (Dumpchk.exe). Программа Dumpchk.exe используется также для проверки правильности создания файла дампа памяти. Dump Check не требует доступа к символам отладки. Программа Dump Check входит в комплект средств поддержки Microsoft Windows 2000 Support Tools и Microsoft Windows XP Support Tools. Скачать данные пакеты вы можете, пройдя по данной ссылке http://www.microsoft.com/whdc/devtools/debugging/default.mspx

Для интерпретации файлов малого дампа памяти можно воспользоваться также средствами WinDbg или the KD.exe . Программы WinDbg и KD.exe входят в последнюю версию пакета средств отладки для Windows.

Как открыть файл дампа памяти

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

  1. Нажмите кнопку Пуск , выберите пункт Выполнить , введите команду cmd и нажмите кнопку ОК .
  2. Перейдитевпапку «Debugging Tools for Windows». Для этого введите в командной строке

cd c:\program files\debugging tools for windows

и нажмите клавишу ВВОД.

  1. Для загрузки файла дампа памяти в программу отладки введите одну из следующих команд и нажмите клавишу ВВОД:

windbg -y путь_к_символу -i путь_к_образу -z путь_к_файлу_дампа

kd -y путь_к_символу -i путь_к_образу -z путь_к_файлу_дампа

Раздел-заглушка

Описание

путь_к_символу

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

путь_к_образу

Путь к этим файлам. Эти файлы содержатся в папке I386 на компакт-диске Windows XP. Пример пути: C:\Windows\I386.

путь_к_файлу_дампа

Путь к анализируемому файлу дампа памяти и имя этого файла.

Анализ файла дампа памяти

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

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

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

Сведения о других командах и полном синтаксисе команд см. в справочной документации к средствам отладки. Справочная документация к средствам отладки размещается в файле: C:\Program Files\Debugging Tools for Windows\Debugger.chm

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

311503 (http://support.microsoft.com/kb/311503/) Получение файлов символов отладки с сервера символов Майкрософт

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

Типы дампа

Различают три типа дампа:

  1. Полный – это всё содержимое оперативной памяти. Его используют редко, так как его размер составляет полный объём оперативки+1 Мб заголовка.
  2. Дамп ядра – это информация, которая касается исключительно работы ядра и его состояния.
  3. Малый дамп – это снимок, который содержит в себе информацию: код ошибки, его параметры, перечень драйверов, которые были загружены в ОП на момент краха системы. То есть те сведения, которых достаточно, для определения причины сбоя.

Для того, чтобы система могла сохранять малый дамп, необходимо установить определённые параметры.

Для ОС Windows 7 и Windows XP

Жмём «Пуск», правой кнопкой «Компьютер» и выбираем «Свойства».

Переходим к разделу «Дополнительные параметры системы».

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

Выбираем «Малый дамп памяти» и жмём «Ок» для сохранения изменений.

Анализ малого дампа с помощью программы Blue Screen View

Программа Blue Screen View и не требует установки. Для того, чтобы с её помощью определить причину сбоя системы, выполняем следующие действия.

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

Откроется окно софта. Интерфейс простой, однако, на английском. В первую очередь указываем место сохранения малого дампа. Жмём «Options» и выбираем «Advanced Options».

Ставим отметку возле первого раздела «Load fromthe following Mini Dump folder» и указываем папку, где находится снимок ошибки. Если изначально в настройках системы был установлен малый дамп, то программа сама укажет путь к снимку C:\WINDOWS\Minidump. Жмём «Ок», чтобы попасть в интерфейс программы.

Блок под цифрой 1 – это список аварийных дампов, которые были сделаны системой. Под цифрой 2 располагаются снимки и перечень драйверов.

Розовым в списке обозначены драйвера, которые являются причиной сбоя системы.

Если у вас нет списка с драйверами, жмём «Options». Переходим к «LowerPaneMode» и выбираем «OnlyDriversFoundInStack».

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