Дамп памяці

Дамп памяці (англ.: 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