Лучшие вопросы
Таймлайн
Чат
Перспективы
Дамп памяти
Из Википедии, свободной энциклопедии
Remove ads
Дамп па́мяти (англ. memory dump; в Unix — core dump) — содержимое рабочей памяти одного процесса, ядра или всей операционной системы. Также может включать дополнительную информацию о состоянии программы или системы, например значения регистров процессора и содержимое стека. Многие операционные системы позволяют сохранять дамп памяти для отладки программы. Как правило, дамп памяти процесса сохраняется автоматически, когда процесс завершается из-за критической ошибки (например, из-за ошибки сегментации). Дамп также можно сохранить вручную через отладчик или любую другую специальную программу.
Remove ads
История
Английский термин 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) объектов ядра; список загруженных библиотек, а также список выгруженных библиотек. Полностью ознакомиться с возможными вариантами можно, изучив перечисление MINIDUMP_TYPE Архивная копия от 11 января 2015 на Wayback Machine.
См. также
Ссылки
Форматы дампа памяти в различных операционных системах:
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 Архивная копия от 27 декабря 2009 на Wayback Machine
- Анализ дампа памяти Архивная копия от 2 февраля 2013 на Wayback Machine
Remove ads
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads