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