Что такое дамп процесса

Что такое дамп процесса

Сбой системы (также называемый "Проверка ошибок" или "Stop-ошибка") происходит, если Windows не удается правильно запустить. A system crash (also known as a “bug check” or a "Stop error") occurs when Windows can’t run correctly. Файл дампа, созданный из этого события, называется аварийным дампом системы. The dump file that is produced from this event is called a system crash dump.

Файл дампа памяти вручную может быть полезен при устранении нескольких проблем, поскольку процесс захватывает запись системной памяти на момент аварийного завершения работы. A manual kernel or complete memory dump file is useful when you troubleshoot several issues because the process captures a record of system memory at the time of a crash.

Настройка файлов страниц Set up page files

Дополнительные сведения о том, как изменить размер файла подкачки для создания дампа системы, приведены в разделе Поддержка аварийных дампов системы . See Support for system crash dumps for the page file size requirement for system crash dump.

Параметр включения дампа памяти Enable memory dump setting

Для выполнения этой процедуры необходимо войти в систему с учетной записью администратора или члена группы администраторов. You must be logged on as an administrator or a member of the Administrators group to complete this procedure. Если компьютер подключен к сети, параметры сетевой политики могут препятствовать выполнению этой процедуры. If your computer is connected to a network, network policy settings may prevent you from completing this procedure.

Чтобы включить параметр дампа памяти, выполните указанные ниже действия. To enable memory dump setting, follow these steps:

На панели управлениявыберите система и > системабезопасности. In Control Panel, select System and Security > System.

Выберите пункт Дополнительные параметры системыи перейдите на вкладку Дополнительно . Select Advanced system settings, and then select the Advanced tab.

В области Загрузка и восстановление выберите пункт Параметры. In the Startup and Recovery area, select Settings.

Убедитесь, что в разделе запись отладочной информациивыбран параметр дампа памяти ядра или полный дамп памяти . Make sure that Kernel memory dump or Complete memory dump is selected under Writing Debugging Information.

Перезагрузите компьютер. Restart the computer.

Вы можете изменить путь к файлу дампа, изменив поле файл дампа . You can change the dump file path by edit the Dump file field. Другими словами, вы можете изменить путь из%Системрут%мемори.ДМП, чтобы он указывал на локальный диск, на котором достаточно свободного места, например Е:мемори.ДМП. In other words, you can change the path from %SystemRoot%Memory.dmp to point to a local drive that has enough disk space, such as E:Memory.dmp.

Советы по созданию дампов памяти Tips to generate memory dumps

При сбое и перезапуске компьютера содержимое физического ОЗУ записывается в файл подкачки, который находится в разделе, на котором установлена операционная система. When the computer crashes and restarts, the contents of physical RAM are written to the paging file that is located on the partition on which the operating system is installed.

В зависимости от скорости жесткого диска, на котором установлена операционная система Windows, дамп более 2 гигабайт (ГБ) памяти может занять много времени. Depending on the speed of the hard disk on which Windows is installed, dumping more than 2 gigabytes (GB) of memory may take a long time. Даже в случае, если файл дампа настроен так, чтобы он находился на другом локальном жестком диске, на жесткий диск будут прочитаны и записаны значительные объемы данных. Even in a best case scenario, if the dump file is configured to reside on another local hard drive, a significant amount of data will be read and written to the hard disks. Это может вызвать длительный сбой сервера. This can cause a prolonged server outage.

Используйте этот метод для создания полных файлов дампа памяти с осторожностью. Use this method to generate complete memory dump files with caution. В идеале это следует делать только в том случае, если вы явным образом запрашиваете специалист службы поддержки Майкрософт. Ideally, you should do this only when you are explicitly requested to by the Microsoft Support engineer. Любая Отладка файлов ядра и полных дампов памяти должна быть последней после того, как все стандартные методы устранения неполадок будут полностью исчерпаны. Any kernel or complete memory dump file debugging should be the last resort after all standard troubleshooting methods have been completely exhausted.

Создание файла дампа памяти вручную Manually generate a memory dump file

Использование средства Нотмифаулт Use the NotMyFault tool

Если вы можете войти в систему во время возникновения проблемы, вы можете воспользоваться средством Microsoft Sysinternals Нотмифаулт. If you can log on while the problem is occurring, you can use the Microsoft Sysinternals NotMyFault tool. Для этого выполните следующие действия: To do this, follow these steps:

Скачайте средство нотмифаулт . Download the NotMyFault tool.

Нажмите кнопку Пуски выберите пункт Командная строка. Select Start, and then select Command Prompt.

В командной строке выполните следующую команду: At the command line, run the following command:

Эта операция создает файл дампа памяти и ошибку остановки D1. This operation generates a memory dump file and a D1 Stop error.

Использовать немаскируемое прерывание Use NMI

На некоторых компьютерах нельзя использовать клавиатуру для создания файла аварийной копии памяти. On some computers, you cannot use keyboard to generate a crash dump file. Например, для управления серверами Hewlett-Packard (HP) Бладесистем из компании Hewlett-Packard вы используете графический интерфейс пользователя (GUI), основанный на браузерах. For example, Hewlett-Packard (HP) BladeSystem servers from the Hewlett-Packard Development Company are managed through a browser-based graphical user interface (GUI). Клавиатура не подключена к серверу HP Бладесистем. A keyboard is not attached to the HP BladeSystem server.

Читайте также:  Как в учуд сделать выпадающий список

В этих случаях необходимо создать полный файл аварийной копии памяти или файл аварийного дампа ядра с помощью переключателя немаскируемое прерывание (NMI), который вызывает прерывание на системном процессоре. In these cases, you must generate a complete crash dump file or a kernel crash dump file by using the Non-Maskable Interrupt (NMI) switch that causes an NMI on the system processor.

Для этого выполните следующие действия: To do this, follow these steps:

Внимательно выполните действия, описанные в этом разделе. Follow the steps in this section carefully. Неправильное изменение реестра может привести к серьезным проблемам. Serious problems might occur if you modify the registry incorrectly. Перед тем как вносить изменения, создавайте резервную копию реестра для восстановления на случай возникновения проблем. Before you modify it, back up the registry for restoration in case problems occur.

В редакторе реестра найдите следующий подраздел реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCrashControl In Registry Editor, locate the following registry subkey: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCrashControl

Щелкните правой кнопкой мыши крашконтрол, выберите пункт создать, а затем — параметр DWORD. Right-click CrashControl, point to New, and then click DWORD Value.

Введите Нмикрашдумп и нажмите клавишу ВВОД. Type NMICrashDump, and then press Enter.

Щелкните правой кнопкой мыши нмикрашдумпи выберите команду изменить. Right-click NMICrashDump, and then select Modify.

В поле значение введите 1и нажмите кнопку ОК. In the Value data box, type 1, and then select OK.

Перезагрузите компьютер. Restart the computer.

Производители оборудования, например HP, IBM и Dell, могут предоставлять функцию автоматического восстановления системы (ASR). Hardware vendors, such as HP, IBM, and Dell, may provide an Automatic System Recovery (ASR) feature. Вы должны отключить эту функцию во время устранения неполадок. You should disable this feature during troubleshooting. Например, если в BIOS включена функция HP и Compaq ASR, отключите эту функцию, когда вы можете устранить неполадки с созданием полного файла Memory. dmp. For example, if the HP and Compaq ASR feature is enabled in the BIOS, disable this feature while you troubleshoot to generate a complete Memory.dmp file. Для получения точных инструкций обратитесь к поставщику оборудования. For the exact steps, contact your hardware vendor.

Включите выключатель NMI в BIOS или с помощью встроенного веб-интерфейса света (iLO). Enable the NMI switch in the BIOS or by using the Integrated Lights Out (iLO) Web interface.

Точные инструкции можно найти в справочной документации по BIOS или у поставщика оборудования. For the exact steps, see the BIOS reference manual or contact your hardware vendor.

Протестируйте этот метод на сервере с помощью переключателя NMI, чтобы создать файл дампа. Test this method on the server by using the NMI switch to generate a dump file. Вы увидите неисправность 0x00000080 оборудования. You will see a STOP 0x00000080 hardware malfunction.

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

Для чего нам может потребоваться данное содержимое, то есть дамп памяти Windows? Пожалуй, наиболее часто дамп памяти используется для изучения причин возникновения системного сбоя (BSOD), который явился причиной полного останова операционной системы. В дополнение к этому, состояние памяти может использоваться и для других целей. Немаловажен и тот факт, что дамп памяти — это буквально единственный способ получения информации о любом сбое! А снятие (получение) дампа памяти системы — это, фактически, единственный точный метод получения мгновенного отпечатка (копии) содержимого физической памяти системы.

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

Теоретически, статичность (неизменность) "отпечатка" памяти объясняется тем, что когда вызывается функция KeBugCheckEx , выводящая на экран информацию о сбое и стартующая процесс создания дампа памяти, система уже полностью остановлена и содержимое физической памяти записано в блоки, занимаемые на диске файлом подкачки, после чего, уже в процессе последующей загрузки операционной системы оно сбрасывается в файл на системном носителе. Ну а практически один раз наблюдал ситуацию, когда сбоящая материнская плата не давала сохранить дамп памяти: а) подвисая в процессе работы логики сохранения дампа (процесс не доходил до 100%), б) повреждая файл дампа памяти (отладчик ругался на структуры), в) записывая файлы дампов memory.dmp нулевой длины. Поэтому, не смотря на то, что система в момент создания дампа памяти уже полностью остановлена, и работает только аварийный код, сбойное железо может вносить свои коррективы в любую без исключения логику на любом этапе функционирования.
Традиционно, на начальном этапе для сохранения дампа памяти Windows используются блоки диска, выделенные файлу подкачки (pagefile). Затем, после возникновения синего экрана и перезагрузки, данные перемещаются в отдельный файл, а затем файл переименовывается по шаблону, зависящему от типа дампа. Однако, начиная с версии Windows Vista, подобное положение вещей возможно изменить, теперь пользователю дана возможность сохранять выделенный дамп без участия файла подкачки, помещая информацию о сбое во временный файл. Сделано это для того, чтобы исключить ошибки конфигурации, связанные с неправильной настройкой размера и положения файла подкачки, что зачастую приводило к проблемам в процессе сохранения дампа памяти.
Давайте посмотрим, какие же разновидности дампов позволяет нам создавать операционная система Windows:

  • Дамп памяти процесса (приложения);
  • Дамп памяти ядра;
  • Полный дамп памяти (дамп доступной части физической памяти системы).
Читайте также:  Как удалить баннер с компьютера

Все аварийные дампы можно разделить на две основных категории:

  • Аварийные дампы с информацией о возникшем исключении . Обычно создаются в автоматическом режиме, когда в приложении/ядре возникает необрабатываемое исключение (unhandled exception) и, соответственно, может быть вызван системный (встроенный) отладчик. В этом случае информация об исключении записывается в дамп, что упрощает определение типа исключения и места возникновения при последующем анализе.
  • Аварийные дампы без информации об исключении . Обычно создаются пользователем в ручную, когда необходимо создать просто мгновенный снимок процесса для последующего анализа. Анализ этот подразумевает не определение типа исключения, поскольку никакого исключения и не возникало, а анализ совершенно другого рода, например изучение структур данных процесса и прочее.

Конфигурация дампа памяти ядра

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

  1. Нажать правой кнопкой мыши на значке "Мой Компьютер" — "Свойства" — "Дополнительные параметры системы" — "Дополнительно".
  2. Кнопка "Пуск" — "Панель управления" — "Система" — "Дополнительные параметры системы" — "Дополнительно".
  3. Сочетание клавиш "Windows" + "Pause" — "Дополнительные параметры системы" — "Дополнительно".
  4. Выполнить в командной строке (cmd):
    control system.cpl,,3
  5. Выполнить в командной строке (cmd):
    SystemPropertiesAdvanced

Результатом описанных действий является открытие окна "Свойства системы" и выбор вкладки "Дополнительно":

После этого в разделе "Загрузка и восстановление" мы нажимаем выбираем "Параметры" и тем самым открываем новое окно под названием "Загрузка и восстановление":

Все параметры аварийного дампа сгруппированы в блоке параметров под названием "Отказ системы". В этом блоке мы можем задать следующие параметры:

  1. Записать события в системный журнал.
  2. Выполнить автоматическую перезагрузку.
  3. Запись отладочной информации.
  4. Файл дампа.
  5. Заменять существующий файл дампа.

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

Малый дамп памяти (Small memory dump)

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

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

Размещение: %SystemRoot%MinidumpMMDDYY-XXXXX-NN.dmp . Где MMDDYY — месяц, день и год соответственно, NN — порядковый номер дампа.
Объем: Размер зависит от разрядности операционной системы: требуется всего-то 128 килобайт для 32-разрядной и 256 килобайт для 64-разрядной ОС в файле подкачки (либо в файле, указанном в DedicatedDumpFile). Поскольку выставить столь малый размер мы не сможем, то округляем до 1 мегабайта.

Дамп памяти ядра (Kernel memory dump)

Данный тип дампа содержит копию всей памяти ядра на момент сбоя.
Состав:

  • Список исполняющихся процессов.
  • Состояние текущего потока.
  • Страницы памяти режима ядра, присутствующие в физической памяти в момент сбоя: память драйверов режима ядра и память программ режима ядра.
  • Память аппаратно-зависимого уровня (HAL).
  • Список загруженных драйверов.

В дампе памяти ядра отсутствуют нераспределенные страницы памяти и страницы пользовательского режима. Согласитесь, ведь маловероятно, что страницы процесса пользовательского режима будут нам интересны при системном сбое (BugCheck), поскольку обычно системный сбой инициируется кодом режима ядра.
Размещение: %SystemRoot%MEMORY.DMP . Предыдущий дамп перезаписывается.
Объем: Варьируется в зависимости от размера адресного пространства ядра, выделенной операционной системой и количества драйверов режима ядра. Обычно, требуется около трети объема физической памяти в файле подкачки (либо в файле, указанном в DedicatedDumpFile). Может варьироваться.

Полный дамп памяти (Complete memory dump)

Полный дамп памяти содержит копию всей физической памяти (ОЗУ, RAM) в момент сбоя. Соответственно, в файл попадает и все содержимое памяти системы. Это одновременно преимущество и главный недостаток, поскольку размер его на некоторых серверах с большим объемом ОЗУ может оказаться существенным.
Состав:

  • Все страницы "видимой" физической памяти. Это практически вся память системы, за исключением областей, используемых аппаратной частью: BIOS, пространство PCI и прч.
  • Данные процессов, которые выполнялись в системе в момент сбоя.
  • Страницы физической памяти, которые не отображены на виртуальное адресное пространство, но которые могут помочь в изучении причин сбоя.

В полный дамп памяти не включаются, по-умолчанию, области физической памяти, используемой BIOS.
Размещение: %SystemRoot%MEMORY.DMP . Предыдущий дамп перезаписывается.
Объем: В файле подкачки (либо в файле, указанном в DedicatedDumpFile) требуется объем, равный размеру физической памяти + 257 мегабайт (эти 257 Мб делятся на некий заголовок + данные драйверов). На деле же, в некоторых ОС, нижний порог файла подкачки можно выставить точно в значение размера физической памяти.

Читайте также:  Как убрать скотч с пластиковых окон

Автоматический дамп памяти (Automatic memory dump)

Начиная с Windows 8/Windows Server 2012, в систему введен новый тип дампа под названием "Автоматический дамп памяти", который устанавливается типом по умолчанию. В этом случае система сама решает, какой дамп памяти записать в ситуации того или иного сбоя. Причем логика выбора зависит от многих критериев, в том числе от частоты "падения" операционной системы.

Параметры реестра

Раздел реестра, который определяет параметры аварийного дампа:

Параметр Тип Описание
AutoReboot REG_DWORD Включение/отключение автоматической перезагрузки при возникновении BSOD.
CrashDumpEnabled REG_DWORD Вид создаваемого дампа.
  • 0 — не создавать дамп памяти;
  • 1 — полный дамп памяти;
  • 2 — дамп памяти ядра;
  • 3 — малый дамп памяти;
DumpFile REG_EXPAND_SZ Путь и название дампа памяти ядра и полного дампа памяти. DumpFilters REG_MULTI_SZ Драйвер-фильтр в стеке драйверов дампа памяти. Позволяет добавлять новый функционал на этапе создания аварийных дампов. Например, шифрование содержимого дампа. Изменять значение не рекомендуется. LogEvent REG_DWORD Запись события в системный журнал. MinidumpDir REG_EZPAND_SZ Путь и название малого дампа памяти. MinidumpsCount REG_DWORD Максимальное количество малых дампов памяти. При превышении начинают затираться более старые версии. Overwrite REG_DWORD Заменять существующий файл дампа. Только для дампа памяти ядра и полного дампа памяти. IgnorePagefileSize REG_DWORD Игнорирует стандартный файл подкачки как место для временного (промежуточного) хранения дампа памяти. Указывает на необходимость записать дамп памяти в отдельный файл. Используется совместно с опцией DedicatedDumpFile. DedicatedDumpFile REG_EZPAND_SZ Путь и название временного альтернативного файла для записи дампа памяти. Во втором проходе данные все равно будут перемещены в DumpFile/MinidumpDir.

Ручное создание дампа памяти

Выше мы описывали настройки для автоматического создания аварийных дампов системы в случае возникновения критической ошибки, то есть необрабатываемого исключения в коде ядра. Но ведь в реальной жизни, помимо падения операционной системы, существуют ситуации, когда необходимо получить дамп памяти системы в конкретный момент времени. Как быть в этом случае? Существуют методы получения мгновенной копии всей физической памяти, например с помощью команды .dump в отладчиках WinDbg/LiveKD. LiveKD — программа, позволяющая запускать отладчик ядра Kd в функционирующей системе в локальном режиме. В отладчике WinDbg тоже имеется подобная возможность. Однако метод получения дампа "на лету" не точен, поскольку дамп создается в этом случае "противоречивый", так как для создания дампа требуется время, а в случае использования отладчика режима ядра система продолжает работать и вносить изменения в страницы памяти.

Файлы настроек реестра

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

Как часто Вам приходится лицезреть экран смерти Windows (BSoD)? BSoD может возникать в разных случаях: как уже при работе с системой, так и в процессе загрузки операционной системы. Как же определить, чем вызвано появление BSoD и устранить эту проблему? Операционная система Windows способна сохранять дамп памяти при появлении ошибки, чтобы системный администратор мог проанализировать данные дампа и найти причину возникновения BSoD.

Существует два вида дампов памяти — малый (minidump) и полный. В зависимости от настроек операционной системы, система может сохранять полный или малый дампы, либо не предпринимать никаких действий при возникновении ошибки.

Малый дамп располагается по пути %systemroot%minidump и имеет имя вроде Minixxxxxx-xx.dmp
Полный дамп располагается по пути %systemroot% и имеет имя вроде Memory.dmp

Для анализа содержимого дампов памяти следует применять специальную утилиту — Microsoft Kernel Debugger.
Получить программу и компоненты, необходимые для ее работы, можно напрямую с сайта Microsoft — Debugging Tools

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

Помимо самого пакета Debugging Tools for Windows, также понадобятся набор отладочных символов — Debugging Symbols. Набор отладочных символов специфичен для каждой ОС, на которой был зафиксирован BSoD. Потому придется загрузить набор символов для каждой ОС, анализировать работу которой Вам придется. Для 32-разрядной Windows XP потребуются набор символов для Windows XP 32-бит, для 64-разрядной ОС потребуются набор символов для Windows XP 64-бит. Для других ОС семейства Windows наборы символов подбираются сообразно такому же принципу. Загрузить отладочные символы можно отсюда. Устанавливать их рекомендуется по адресу %systemroot%symbols

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

Перед анализом содержимого дампа памяти, потребуется провести небольшую настройку отладчика. Конкретно — сообщить программе, по какому пути следует искать отладочные символы. Для этого выбираем в меню File > Symbol File Path… Нажимаем кнопку Browse… и указываем папку, в которую мы установили отладочные символы для рассматриваемого дампа памяти.

Можно запрашивать информацию о требуемых отладочных символах прямо через Интернет, с публичного сервера Microsoft. Таким образом у вас будет самая новая версия символов. Сделать это можно следующим образом — в меню File > Symbol File Path… вводим: SRV*%systemroot%symbols*http://msdl.microsoft.com/download/symbols

После указания пути к отладочным символам, выбираем в меню File > Save workspace и подтверждаем действие нажатием на кнопку OK.

Чтобы приступить к анализу дампа памяти, выбираем в меню File > Open Crash Dump… и выбираем требуемый для рассмотрения файл.

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

Команда !analyze -v, данная отладчику в командной строке, выведет более детальную информацию.

Завершить отладку можно выбором пункта меню Debug > Stop Debugging

Таким образом, используя пакет Debugging Tools for Windows, всегда можно получить достаточно полное представление о причинах возникновения системных ошибок.

Ссылка на основную публикацию
Что делать если игры не скачиваются
Play Market — официальный магазин приложений для Андроида и главный источник загрузки новых игр и программ на смартфоны и планшеты...
Хороший принтер для школьника
Для ученика возможность распечатывать доклады, рефераты и иллюстрации для занятий в школе - совсем не лишняя. Школьнику в XXI веке...
Хороший телефон с aliexpress
Обновлено 22.10.2019 На Алиэкспресс есть много разных производителей смартфонов. Даже есть такие международные бренды, как Apple. В этой подборке мы...
Что делать если заглючил планшет
Если завис планшет леново, самсунг, асус, престижио, дигма и так далее, да еще и в самое неподходящее время радости конечно...
Adblock detector