Дамп памяти

15-10-2023

Дамп памяти (англ. 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 с помощью программы Debug.exe

Дамп 32-х битной операционной системы Windows содержит FFFF FFFF16 или 429496729510 байт. Бо́льшая их часть содержит значение по умолчанию — число 0. Дамп можно логически разделить на сегменты по 64 кб (FFFF16), поэтому .com файлы операционной системы Windows не могут превышать этого размера, размещаясь только в одном сегменте, однако, программа может передавать управление над выполнением функции в другие сегменты. При запуске .com файлов весь код файла без изменений заносится в один из незанятых другими процессами сегментов.

Дамп содержит данные и команды различных процессов, как пользовательских приложений так и ядра операционной системы (в частности все прерывания BIOS, они же стандартные функции). Также в дампе содержатся значения регистров процессора и содержимое различных стеков, системное время и другие переменные среды.

См. также

Ссылки

  • Why does this not work!? How to find and fix faults in Linux applications.  (англ.)

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

  • 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


Дамп памяти.

© 2011–2023 stamp-i-k.ru, Россия, Барнаул, ул. Анатолия 32, +7 (3852) 15-49-47