Использование дампа памяти для диагностики сбоев. Что такое дамп памяти? Анализ дампа памяти

Все 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).

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

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

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


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

Также стоит отметить, что этот файл вы можете создавать самостоятельно вручную. Для этого вызовите стартовое меню, запустите службу, которая называется «Выполнить», и в ней введите команду «regedit», после чего нажмите кнопку «Ок». Перед вами появится операционной системы. Там необходимо найти такой ключ, который выглядит следующим образом: HKEYS LOCAL MACHINES/ SYSTEMA/ CurrentControlSets / Service/ i8042prt/ Parametres.

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

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

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

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 прекращает работу, показывая всем известный «синий экран смерти ». Почему это произошло, поможет понять дамп памяти Windows 10, да и в других версиях это тоже работает. По умолчанию они обычно не создаются, поэтому их надо включить, а для изучения использовать специальные программы, которые извлекут полезную информацию в понятном виде.

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

По сути, это «снимок» оперативной памяти , её содержимое в момент, когда произошёл сбой. Это содержимое записывается в отдельный файл, который и называется дампом. Анализируя его, можно понять, что пошло не так, и в какой части программы случилась проблема. Когда всё нормально и никаких сбоев не происходит, система е создаёт никаких файлов с содержимым памяти. Поэтому на производительность эта функция никак не влияет. Но стоит случиться фатальной ошибке, которая вызывает появление «синего экрана», как создаётся такой файл. Это специальное средство, которое помогает разработчикам устранять такие проблемы. Обычные пользователи тоже могут воспользоваться этим, чтобы узнать, какие программы вызывают сбой системы. Но имейте в виду, что для этого надо иметь некоторые познания по работе компьютеров и программного обеспечения, иначе вся эта информация окажется совершенно бесполезной. Рядовой пользователь уровня «умею включить-печатать-выключить» в ней просто ничего не поймёт.

Настройка создания дампов памяти при ошибках Windows

Чтобы посмотреть и настроить, например, увеличить дамп памяти Windows, рассмотрим 7-ю версию – она продолжает оставаться популярной. Да и в других версиях это делается подобным образом. Для этого можно кликнуть правой кнопкой мыши по значку «Мой компьютер» и выбрать «Свойства». Можно пойти другим путём – зайти в «Панель управления» и выбрать «Система». В любом случае откроется одно и то же окно. Далее выберите слева пункт «Дополнительные параметры системы», и в появившемся маленьком окне перейдите на вкладку «Дополнительно». Здесь в разделе «Загрузка и восстановление» кликните по кнопке «Параметры».

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

В Windows более новых версий есть режим «Автоматический дамп памяти» – можно выбрать его, и этого будет вполне достаточно. Как видите, настроить дамп памяти в Windows 7 несложно. Он будет записываться только при сбоях, и на работу системы никак не влияет.

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

Когда случится сбой и будет создан новый файл с отчётом о проблеме, надо еще как-то его открыть и узнать, что в нём записано. Файл имеет расширение dmp, но встроенные средства для его открытия неудобны и добраться до них можно из командной строки. Кстати, система сохраняет этот файл в своей папке. Чем открыть файл дампа памяти с расширением dmp? Для этого существуют различные утилиты, в том числе и от Microsoft, например, Microsoft Kernel Debuggers. Её можно скачать совершенно бесплатно с официального сайта, но надо учитывать, 32-битная или 64-битная версия нужна. В этой программе можно открыть файлы дампа памяти, которые находятся в системной папке и смотреть их содержимое в виде расшифровки. Конечно, информация сугубо специфичная и рассчитана на специалистов.

Есть и другая популярная утилита – BlueScreenView. Она очень простая и пользоваться ею легко. Но выводимую информацию не так просто понять, но при наличии некоторых технических познаний вполне можно. Красным цветом программа выделяет в списке проблемные части кода, вызвавшие «синий экран», например, определённые драйвера . Это сильно облегчает работу по анализу.

Как удалить файла дампа памяти

Можно ли вообще их удалять? Да, они представляют собой просто служебную информацию для дальнейшего анализа. Если их уже просмотрели или они не нужны, то их можно удалить самым простым способом – в корзину. Иначе они постепенно накапливаются и начинают занимать немало места на винчестере, особенно если снимается полная копия оперативной памяти. Конечно, искать вручную и удалять все эти файлы – занятие не очень приятное. Поэтому можно воспользоваться любой утилитой очистки диска, даже встроенной в Windows, отметив там «Удалять системные файлы». Когда она отработает, все дампы будут тоже удалены. Сама система этими файлами не пользуется и их удаление совершенно безопасно.

Последние материалы раздела:

Мобильный интернет Мегафон
Мобильный интернет Мегафон

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

Как на самсунг включить интернет включая мобильный
Как на самсунг включить интернет включая мобильный

10.04.2017 Frenk 8 комментариев Чтобы получить полную отдачу от планшета или телефона самсунг галакси а3, дуос, j1, а5, j3, j5, j2, гранд...

Несколько простых схем питания светодиодов Схема фонарика на одной батарейке
Несколько простых схем питания светодиодов Схема фонарика на одной батарейке

Если вы когда-нибудь захотите запитать светодиод от одной батарейки, то рано или поздно наткнетесь на схему под названием Joule Thief- вор...