День памяти Ататюрка, молодёжи и спорта
- 1 year ago
- 0
- 0
Дамп памяти ( англ. memory dump ; в Unix — core dump ) — содержимое рабочей памяти одного процесса , ядра или всей операционной системы . Также может включать дополнительную информацию о состоянии программы или системы, например значения регистров процессора и содержимое стека . Многие операционные системы позволяют сохранять дамп памяти для отладки программы . Как правило, дамп памяти процесса сохраняется автоматически, когда процесс завершается из-за критической ошибки (например, из-за ошибки сегментации ). Дамп также можно сохранить вручную через отладчик или любую другую специальную программу.
Английский термин core dump буквально переводится как «выгрузка содержимого ядра»: на ранних компьютерах дамп означал принтерную распечатку содержимого памяти на магнитных сердечниках ( англ. magnetic core memory ). Классическая игра NetHack содержит отсылку к термину при съедении яблока: "core dumped".
В современных
Unix
-подобных операционных системах дамп памяти сохраняется в виде файла, который обычно называется
core
или
core.<номер процесса>
; его формат такой же, как формат исполняемых файлов этой ОС (
ELF
в
Linux
и современных
Unix
,
a.out
в традиционных
Unix
-системах,
Mach-O
в
Mac OS X
). Для анализа core-файла используется отладчик (например
gdb
) или инструмент
objdump
.
В Windows существует два вида дампов: дампы режима ядра и дампы пользовательского режима.
Когда в Windows происходит ошибка в ядре операционной системы , ОС не может продолжать свою работу, что приводит к так называемому синему экрану смерти ( англ. BSoD ). Во время показа этого экрана идёт запись дампа режима ядра ( англ. kernel-mode dump ). Тип записываемого дампа задаётся в свойствах системы во вкладке «Загрузка и восстановление». Windows поддерживает три режима записи дампа, различающиеся объёмом сохраняемой информации:
Дамп пользовательского режима ( англ. 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
(англ.)