- Дамп памяти
-
Дамп памяти (англ. 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.
