- Дамп памяти
-
Дамп памяти (англ. memory dump; в Unix — core dump) — содержимое рабочей памяти одного процесса, ядра или всей операционной системы. Также может включать дополнительную информацию о состоянии программы или системы, например значения регистров процессора и содержимое стека. Многие операционные системы позволяют сохранять дамп памяти для отладки программы. Как правило, дамп памяти процесса сохраняется автоматически когда процесс завершается из-за критической ошибки (например, из-за ошибки сегментации). Дамп также можно сохранить вручную через отладчик или любую другую специальную программу.
Содержание
История
Английский термин core dump буквально переводится как «распечатка содержимого сердечников»: на ранних компьютерах, дамп означал принтерную распечатку содержимого памяти на магнитных сердечниках (англ. magnetic core memory).
В Unix
В современных Unix-подобных операционных системах дамп памяти сохраняется в виде файла, который обычно называется
core
илиcore.<номер процесса>
; его формат такой же, как формат исполняемых файлов этой ОС (ELF в Linux и современных Unix, a.out в традиционных Unix-системах, Mach-O в Mac OS X). Для анализа core-файла используется отладчик (например gdb) или инструмент objdump.В Windows
В Windows, аналогом core dump’а является minidump, который позволяет сохранить частичную или полную информацию о процессе, в том числе и полное содержимое рабочей памяти.
Дамп системы
Дамп 32-х битной операционной системы Windows содержит FFFF FFFF16 или 429496729510 (232 - 1) байт. Бо́льшая их часть содержит значение по умолчанию — число 0. Дамп можно логически разделить на сегменты по 64 кб (FFFF16), поэтому .com файлы операционной системы Windows не могут превышать этого размера, размещаясь только в одном сегменте, однако, программа может передавать управление над выполнением функции в другие сегменты. При запуске .com файлов весь код файла без изменений заносится в один из незанятых другими процессами сегментов.
Дамп содержит данные и команды различных процессов, как пользовательских приложений так и ядра операционной системы (в частности все прерывания BIOS, они же стандартные функции). Также в дампе содержатся значения регистров процессора и содержимое различных стеков, системное время и другие переменные среды.
См. также
Ссылки
Форматы дампа памяти в различных операционных системах:
core(5)
— страница справки man для разработчика Linux — форматы файлов (англ.)core(4)
— страница справки man по форматам файлов Solaris 10 (англ.)core(4)
— страница справки man по форматам файлов HP-UX 11i (англ.)core(5)
— страница справки man по форматам файлов FreeBSD (англ.)core(5)
— страница справки man по форматам файлов OpenBSD (англ.)core(5)
— страница справки man по форматам файлов NetBSD (англ.)core(5)
— страница справки man по форматам файлов Darwin и Mac OS X (англ.)- Windows: функции для работы с minidump
Категории:- Отладка программ
- Компьютерные ошибки
Wikimedia Foundation. 2010.