Interested Article - Дамп памяти

Дамп памяти ( англ. memory dump ; в Unix core dump ) — содержимое рабочей памяти одного процесса , ядра или всей операционной системы . Также может включать дополнительную информацию о состоянии программы или системы, например значения регистров процессора и содержимое стека . Многие операционные системы позволяют сохранять дамп памяти для отладки программы . Как правило, дамп памяти процесса сохраняется автоматически, когда процесс завершается из-за критической ошибки (например, из-за ошибки сегментации ). Дамп также можно сохранить вручную через отладчик или любую другую специальную программу.

История

Английский термин core dump буквально переводится как «выгрузка содержимого ядра»: на ранних компьютерах дамп означал принтерную распечатку содержимого памяти на магнитных сердечниках ( англ. magnetic core memory ). Классическая игра NetHack содержит отсылку к термину при съедении яблока: "core dumped".

В Unix

В современных Unix -подобных операционных системах дамп памяти сохраняется в виде файла, который обычно называется core или core.<номер процесса> ; его формат такой же, как формат исполняемых файлов этой ОС ( ELF в Linux и современных Unix , a.out в традиционных Unix -системах, Mach-O в Mac OS X ). Для анализа core-файла используется отладчик (например gdb ) или инструмент objdump .

В Windows

В Windows существует два вида дампов: дампы режима ядра и дампы пользовательского режима.

Дамп режима ядра

Когда в Windows происходит ошибка в ядре операционной системы , ОС не может продолжать свою работу, что приводит к так называемому синему экрану смерти ( англ. BSoD ). Во время показа этого экрана идёт запись дампа режима ядра ( англ. kernel-mode dump ). Тип записываемого дампа задаётся в свойствах системы во вкладке «Загрузка и восстановление». Windows поддерживает три режима записи дампа, различающиеся объёмом сохраняемой информации:

  • Полный дамп системы ( англ. Complete Memory Dump ) — содержит всю физическую память системы. Существуют проблемы при записи такого дампа, если в системе более 4Гб ОЗУ (это связано с тем, что 32 бита могут адресовать максимум 4Гб). Обычно записывается в файл C:\Windows\MEMORY.DMP;
  • Дамп памяти ядра ( англ. Kernel Memory Dump ) — содержит всю память, которую использует ядро системы;
  • Малый дамп памяти ( англ. Small Memory Dump ) — содержит различную информацию, например, стоп-код, параметры ошибки, список загруженных драйверов и т. п. Обычно записывается в папке C:\Windows\Minidump.

Дамп пользовательского режима

Дамп пользовательского режима ( англ. user-mode dump ), также часто просто ( англ. minidump ) — это дамп памяти отдельного процесса. Он содержит в себе выбранные к записи виды данных. В частности, это может быть: полная или частичная (отфильтрованная) память процесса; список, стек, состояние потоков; дескрипторы ( англ. handle ) объектов ядра; список загруженных библиотек, а также список выгруженных библиотек. Полностью ознакомиться с возможными вариантами можно, изучив перечисление от 11 января 2015 на Wayback Machine .

См. также

Ссылки

  • (англ.)

Форматы дампа памяти в различных операционных системах:

  • — страница справки man для разработчика Linux — форматы файлов (англ.)
  • — страница справки man по форматам файлов Solaris 10 (англ.)
  • — страница справки man по форматам файлов HP-UX 11i (англ.)
  • — страница справки man по форматам файлов FreeBSD (англ.)
  • — страница справки man по форматам файлов OpenBSD (англ.)
  • — страница справки man по форматам файлов NetBSD (англ.)
  • — страница справки man по форматам файлов Darwin и Mac OS X (англ.)
  • от 27 декабря 2009 на Wayback Machine
  • от 2 февраля 2013 на Wayback Machine
Источник —

Same as Дамп памяти