Перайсці да зместу

Дамп памяці

З Вікіпедыі, свабоднай энцыклапедыі

Дамп памяці (англ.: memory dump; у Unix — core dump) — змесціва рабочай памяці аднаго працэсу, ядра ці ўсёй аперацыйнай сістэмы. Таксама можа змяшчаць дадатковую інфармацыю аб стане праграмы ці сістэмы, напрыклад значэнні рэгістраў працэсара і змест стэку. Шматлікія аперацыйныя сістэмы дазваляюць захаваць дамп памяці для адладкі праграм. Як правіла, дамп памяці працэсу захоўваецца аўтаматычна калі працэс завяршаецца з-за крытычнай памылкі (напрыклад, з-за памылкі сегментацыі). Дамп таксама можна захаваць уручную праз адладчык ці любую іншую спецыяльную праграму.

Англійскі тэрмін core dump літаральна перакладаецца як «раздрукоўка змесціва сардэчнікаў»: на ранніх камп’ютарах, дамп значыў прынтарную раздрукоўку змесціва памяці на магнітных сардэчніках (англ.: magnetic core memory).

У сучасных Unix-падобных аперацыйных сістэмах дамп памяці захоўваецца ў выглядзе файла, які звычайна завецца core ці core.<нумар працэсу>; яго фармат такі ж, як фармат выканальных файлаў гэтай АС (ELF у Linux і сучасных Unix, a.out у традыцыйных Unix-сістэмах, Mach-O у Mac OS X). Для аналізу core-файла выкарыстоўваецца адладчык (напрыклад gdb) ці інструмент objdump.

У Windows, аналагам core dump’а з’яўляецца minidump, які дазваляе захоўваць частковую ці поўную інфармацыю аб працэсе, у тым ліку і поўны змест рабочай памяці.

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

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

Фарматы дампа памяці ў розных аперацыйных сістэмах: