- Файл memory.dmp – це дамп пам'яті, який Windows створює, коли виникає критичний системний збій, і використовується для з'ясування його причини.
- Існують різні типи дампів (міні-дамп, ядро, повний, активний) з різними розмірами та рівнями деталізації, які можна налаштувати з Панелі керування.
- Для аналізу дампів можна використовувати такі інструменти, як WinDbg, KD, Dumpchk або простіші утиліти, як WhoCrashed, що спираються на символи налагодження.
- Варто проаналізувати DMP-файли, якщо на них з'являються сині екрани або випадкові перезавантаження; якщо система працює стабільно, їх зазвичай можна видалити, щоб звільнити місце.
¿Що таке файл memory.dmp і коли його слід аналізувати? Коли Windows зависає, з'являється синій екран або комп'ютер несподівано перезавантажується, створюється спеціальний файл під назвою дамп пам'яті, зазвичай з назвою ПАМ'ЯТЬ.DMP або міні-дамп у папці Minidump. Цей файл фіксує те, що відбувалося в пам'яті системи на момент збою, і є головною підказкою для з'ясування того, що сталося.
Можливо, ви ніколи не відкривали один із цих файлів і бачили його згаданим лише в Переглядач подій або в повідомленнях про помилки після виходу з режиму призупинення чи гібернації, але правда полягає в тому, що при правильному використанні дампи пам'яті є дуже потужним інструментом для діагностувати проблемні драйвери, пошкодження пам'яті або збої файлової системиОднак, не завжди варто їх аналізувати, і не всім потрібно зберігати їх безкінечно.
Що саме являє собою файл memory.dmp (та інші файли Windows .dmp)?
У системах Windows файли з розширенням .DMP Вони відомі як архіви дамп пам'яті o дамп пам'яті / дамп ядраЦе двійкові файли журналів, в які операційна система записує частину або весь вміст оперативної пам'яті в момент виникнення події. критична помилка, зазвичай це повідомлення про помилку або синій екран.
Найбільш характерним файлом є C:\Windows\MEMORY.DMPщо зазвичай відповідає дампам пам'яті ядра або повним дампам. Поряд з цим, Windows може створювати набагато менші міні-дампи в папці %SystemRoot%\Мінідампз такими іменами, як ММДДРР-##.dmp (наприклад, 022900-01.dmp), де закодовано дату та порядковий номер.
Ці файли створюються саме в той момент, коли система переживає помилка зупинки (Stop-помилка) або під час першого перезавантаження після збою. Процес, відповідальний за створення дампа в класичних версіях Windows, — це системна утиліта. savedump.exe, який записує вміст на диск, використовуючи власний формат Microsoft, призначений для зчитування засобами налагодження.
Хоча ми розмовно схильні називати «дампом» файли одного типу, насправді Windows може створювати різні види дампів, з дуже різними розмірами та рівнем деталізації, що безпосередньо впливає на... скільки місця на диску вони займають і скільки інформації ми можемо з них витягти, аналізуючи їх.
Яку інформацію містить файл дампа пам'яті?
Те, що зберігається у файлі .dmp, залежить від налаштованого типу дампа, але навіть найменший з них містить мінімальний набір даних, призначений для того, щоб технічний спеціаліст мав уявлення про систему. який компонент спричинив помилку.
У невеликий файл дампа пам'яті (Малий дамп пам'яті або мінідамп) зберігає, як мінімум, таку ключову інформацію:
- Код зупинки (перевірка помилок), його параметри та інші дані, пов’язані з помилкою, яка зупинила роботу системи.
- Список завантажених драйверів на момент збою, разом з їхніми адресами пам'яті.
- Контекст процесора (PRCB) для процесора, який спричинив зупинку Windows.
- Структура EPROCESS процесу, який був зупинений, коли виникла помилка, з інформацією з контексту ядра цього процесу.
- Структура ETHREAD конкретного підпроцесу, який зупинився, а також його контекст ядра.
- Стек викликів режиму ядра теми, яка працювала безпосередньо перед синім екраном.
У більших дампах пам'яті (ядра, повних або активних), крім усього вищезазначеного, включається значно більший обсяг пам'яті: простір ядра, дані драйвера, внутрішні структури, активні сторінкитощо. Тобто, все необхідне для того, щоб з достатньою точністю реконструювати стан системи на момент аварії.
Цю інформацію можна використовувати для обох вирішувати повсякденні проблеми (несумісні драйвери, помилки диска, пошкодження пам'яті), а також у більш складних областях, таких як комп'ютерна криміналістикаде дамп аналізується на наявність слідів шкідливої активності або критичних даних, що знаходилися в оперативній пам'яті на момент зупинки системи.
Де зберігаються файли .dmp і чому вони займають так багато місця?
Windows потребує файл підкачки на завантажувальному томі, щоб мати змогу створювати дампи пам'яті. Зокрема, для створення невеликого дампа (міні-дампа) файл підкачки повинен мати щонайменше 2 МБ, що практично будь-яка сучасна команда більш ніж відповідає вимогам.
The міні-дампінг Вони зберігаються в папці %SystemRoot%\Мінідамп, зазвичай щось на кшталт C:\Windows\МінідампWindows додає нові файли з іменами, що відповідають даті, не обов'язково видаляючи старі. Це зберігає історію помилок, що може бути дуже корисним для того, щоб побачити, чи проблема повторюється з часом.
Більші дампи пам'яті (ядра або повні) за замовчуванням зберігаються в кореневому каталозі системи у файлі %SystemRoot%\MEMORY.DMPСаме тут розмір може різко зрости, оскільки повний дамп може зайняти [обсяг місця]. стільки ж, скільки встановленої оперативної пам'яті (або більше, залежно від конфігурації), а дамп ядра може коливатися приблизно від 150 МБ та 2 ГБ або навіть більше.
З цієї причини на багатьох домашніх комп’ютерах ці файли вважаються «займальними місцями» та періодично видаляються вручну або за допомогою Помічник з очищення дисків з Windows. Якщо в системі немає серйозних або повторюваних проблем, їх видалення зазвичай є прийнятним.
Типи дампів пам'яті у Windows та для чого використовується кожен з них

У розділі «Завантаження та відновлення» Windows є випадаюче меню під назвою «Записати інформацію для налагодження» (Запис інформації для налагодження), де ви можете вибрати тип дампа, який потрібно створювати під час збою системи. Кожен тип має різне призначення та різний вплив з точки зору розміру та корисності.
Звичайні варіанти, які ви знайдете, такі:
- Жоден: Це повністю вимикає створення дампів пам'яті. Система все ще може бачити сині екрани, але файлу .dmp для подальшого аналізу не буде.
- Невеликий дамп пам'яті (256 КБ): Він зберігає найменший набір корисної діагностичної інформації, з фіксованим розміром близько 256 КБ. Це ідеально, якщо у вас обмежений дисковий простір або ви віддаєте перевагу чомусь легкому.
- Дамп пам'яті ядра: Він зберігає лише пам'ять ядра та драйверів, що працюють у режимі ядра, за винятком пам'яті процесів користувача. Він надає набагато більше інформації, ніж міні-дамп, не займаючи стільки місця, скільки повний дамп.
- Автоматичний дамп пам'яті: Він автоматично налаштовує тип і розмір дампа на основі конфігурації файлу підкачки, забезпечуючи баланс між деталізацією та використанням диска. Зазвичай він поводиться як повний дамп, якщо підкачка це дозволяє.
- Активний дамп пам'яті: Він зберігає лише ту пам'ять, яка активна на момент збою, відкидаючи неактивні сторінки. Це відносно новий варіант, розроблений для забезпечення чогось подібного до повного дампа, але більш керований та швидший.
Щоб згенерувати повний дамп пам'яті (не завжди явно видно у випадаючому списку залежно від версії Windows) файл підкачки завантажувального тома повинен мати розмір, еквівалентний Встановлена фізична оперативна пам'ять плюс 1 МБНаприклад, з 16 ГБ оперативної пам'яті файл підкачки повинен мати розмір приблизно 16 ГБ + 1 МБ.
У серверних середовищах (наприклад, Windows Server 2022) і також часто рекомендується використовувати цю опцію на багатьох просунутих настільних комп’ютерах Дамп пам'яті ядраоскільки він пропонує достатній рівень деталізації для більшості сценаріїв усунення несправностей, не заповнюючи диск при найменшій зміні.
Як налаштувати дампи пам'яті у Windows (включно з Server 2022)
Налаштування дампа пам'яті виконується через панель керування, і процедура дуже схожа в обох клієнтських версіях Windows та Windows Server. Важливо увійти в систему, використовуючи обліковий запис. дозволи адміністратора щоб змінити ці параметри.
Загальні кроки для перевірки та налаштування цього налаштування:
- Відкрийте Панель керування введіть «Панель керування» в рядок пошуку Windows і виберіть потрібну програму з результатів.
- У Панелі керування перейдіть до розділу "Система" (Система).
- На бічній панелі або праворуч натисніть на «Додаткові налаштування системи» (Додаткові системні налаштування).
- У вікні, що відкриється, перейдіть на вкладку «Додаткові опції» (Додатково) та знайдіть блок «Початок і відновлення» (Запуск та відновлення).
- Натисніть кнопку «Конфігурація…» (Налаштування), щоб отримати доступ до параметрів поведінки під час помилок.
У цьому діалоговому вікні ви можете, серед іншого, керувати тим, чи відображається список операційних систем на кілька секунд під час запуску, чи ввімкнено комп’ютер автоматично перезавантажується після системної помилки та, що найважливіше для цієї теми, який тип налагоджувальної інформації записується.
У розкривному списку «Записати налагоджувальну інформацію» виберіть варіант, який вас найбільше цікавить: з Невеликий дамп пам'яті (256 КБ) доки Дамп пам'яті ядра o Автоматичний/активний дамп пам'ятіЗалежно від цільового використання. Для більш розширеної діагностики зазвичай гарною ідеєю є вибір Дамп пам'яті ядраякий пропонує розумний баланс між деталями та розміром.
Прямо нижче ви побачите поле, де це визначено назва та маршрут з основного файлу дампа. За замовчуванням зазвичай %SystemRoot%\MEMORY.DMPщо зазвичай дорівнює C:\Windows\MEMORY.DMPТакож є опція (або спеціальне поле в деяких версіях) для визначення папки для невеликих дампів пам'яті, де ви можете змінити каталог %SystemRoot%\Мінідамп на інший маршрут, якщо бажаєте.
Зрештою, ви знайдете поля, щоб вирішити, чи перезаписує будь-який існуючий файл дампу, коли створюється новий, і якщо він вимикає автоматичне видалення дампів Коли дисковий простір обмежений. Вибір або скасування вибору цих опцій залежить від того, що ви надаєте пріоритет збереженню історії збоїв чи захисту сховища.
Технічні характеристики та детальний зміст формату DMP
Формат файлу DMP, який використовується Windows, – це формат Власник Microsoft Розроблено для роботи з офіційними інструментами налагодження. Хоча існують сторонні програми, які інтерпретують певну інформацію, найповніший аналіз зазвичай виконується за допомогою WinDbg або інші утиліти, що входять до складу Засобів налагодження для Windows.
Загалом, Windows обробляє три основні категорії дампів пам'яті:
- Міні-дамп (міні-дамп, 64/128 КБ): воно зберігається в %SystemRoot%\Мінідамп і містить найнеобхіднішу інформацію для ідентифікації помилки Stop, стеку винного потоку, завантажених драйверів та основних структур процесів/потоків.
- Дамп пам'яті ядра: зберігається в ПАМ'ЯТЬ.DMP Він захоплює всю пам'ять ядра, включаючи пам'ять, що належить контролерам, і пам'ять, виділену для рівня абстракції обладнання (HAL). Він не включає вільну пам'ять або пам'ять процесів користувача.
- Повний/автоматичний/активний дамп пам'яті: Повні дампи включають (практично) всю фізичну пам'ять системи, тоді як активні дампи намагаються зберегти лише те, що використовується на даний момент. В обох випадках розмір може бути дуже великим.
Точніше, DMP-файл може містити, серед інших елементів:
- Оголошення зупинки (BugCheck) та його параметри, з описом помилки, якщо її вирішено за допомогою символів.
- Список завантажених модулів (драйверів та компонентів), включаючи його діапазон адрес, стан і шлях до диска.
- Контекст процесора (PRCB) процесора, який ініціював зупинку, з відповідними регістрами та прапорцями.
- Інформація про EPROCESS задіяних процесів з їхнім контекстом ядра.
- Інформація про ETHREAD підпроцесу, який спричинив зупинку.
- Стек викликів режиму ядра а у більших дампах — додаткова інформація про користувача, внутрішні структури ядра та дані пам'яті, потенційно корисні для розширеного аналізу.
Хоча це може здатися дуже низькорівневим, значна частина цього контенту представлена в "пережованому" вигляді за допомогою команд налагодження, тому аналітику не потрібно сліпо занурюватися в необроблені адреси пам'яті, щоб зробити висновки.
Реальний приклад помилки та дампа DMP: коли система перезавантажується самостійно

Дуже поширеним сценарієм є ситуація, коли користувач встановлює нові модулі оперативної пам'яті або змінює апаратне забезпечення (наприклад, блок живлення чи освітлювальні прилади A-RGB), і звідти обладнання починає Перезавантаження без видимого BSOD, а потім відображення посилань на у вікні перегляду подій ПАМ'ЯТЬ.DMP або файли в папці Minidump.
Хоча такі інструменти, як вбудована перевірка пам'яті Windows, MemTest86Навіть якщо діагностика процесора (наприклад, інструмент діагностики процесорів Intel) показує, що помилок, очевидно, немає, дампи можуть виявити проблемні драйвери, пошкодження структури ядра або збої файлової системи NTFS які залишаються непоміченими в інших тестах.
Ще один типовий випадок – це збої під час відновлення з призупинення або сплячка На ноутбуках та ультрабуках: система відображає повідомлення на кшталт «Windows відновилася після серйозної помилки», а після подальшого розслідування – посилання на ПАМ'ЯТЬ.DMP Невеликі дампи вже зберігалися в C:\Windows\Minidump. Аналіз цих файлів за допомогою таких утиліт, як Хто розбивсяВи можете побачити помилки, пов'язані з ЗБІЙ_СТОРІНКИ_В_НЕПАРКОВАНІЙ_ОБЛАСТІ, КЕРУВАННЯ_ПАМ'ЯТТЮ_або_ЗБІЙ_ПЕРЕВІРКИ_БЕЗПЕКИ_ЯДРА, що зазвичай вказує на те, що драйвер звернувся до недійсної пам'яті або критична структура була пошкоджена.
У звітах такого типу часто можна знайти, що ймовірною причиною є стандартний модуль Microsoft, такий як ntoskrnl.exe, ntfs.sys або fileinfo.sysОднак, часто справжнім винуватцем є інший контролер третьої сторони який раніше пошкодив пам'ять, і провина лежить на компоненті Windows, який згодом «перезаписав» цю пам'ять.
Коли дампи показують повторювану колекцію помилок керування пам'яттю (MEMORY_MANAGEMENT) або помилок доступу до несторінкової пам'яті (PAGE_FAULT_IN_NONPAGED_AREA), це не завжди пов'язано з несправною оперативною пам'яттю: досить часто це пов'язано з помилки в драйверахнестабільні конфігурації системи або навіть програмне забезпечення безпеки та фільтрації, яке агресивно взаємодіє з ядром.
Коли варто аналізувати файл memory.dmp?
Не в усіх ситуаціях потрібно витрачати час на відкриття та аналіз дампа пам'яті. На багатьох звичайних комп'ютерах, якщо система повертається до нормальної роботи після одноразового збою, ви можете вважати ці файли «Історичний про всяк випадок» які ви зрештою можете видалити, щоб звільнити місце.
Однак, бажано серйозно ставитися до файлів .dmp та аналізувати їх у таких випадках:
- Випадкові перезапуски без поясненьособливо під навантаженням (ігри, потокове передавання, важкі завдання) або під час виходу з режиму сну/гібернації.
- Повторювані сині екрани з подібними кодами помилок або такими, що вказують на ту саму групу проблем (MEMORY_MANAGEMENT, KERNEL_SECURITY_CHECK_FAILURE тощо).
- Збої після зміни обладнання або драйверів (нова оперативна пам'ять, графічний процесор, контролери пам'яті, оновлений BIOS/UEFI), які часово збігаються з початком проблем.
- Критично важливе обладнання або сервери де кожне падіння має вплив, і вам потрібно обґрунтувати походження проблеми або продемонструвати, що її було пом'якшено.
У цих сценаріях аналіз дампів може дати вам підказки про який конкретний компонент викликає нестабільність, незалежно від того, чи це суто проблема програмного забезпечення (драйвери, конфігурація, шкідливе програмне забезпечення), чи є ознаки основних проблем з обладнанням, які потребують більш ретельного тестування.
Інструменти для відкриття та аналізу DMP-файлів
Для роботи з дампами пам'яті у Windows у вашому розпорядженні є кілька інструментів, від най"офіційніших" та найпотужніших до найпростіших утиліт, розроблених для користувачів, які не хочуть морочитися зі складними командами.
Microsoft надає Утиліта перевірки дампа пам'яті (Dumpchk.exe)Цей інструмент дозволяє перевірити, чи файл дампа було створено правильно, та прочитати частину його вмісту. Він не такий потужний, як повноцінний налагоджувач, але служить для швидкої перевірки цілісності.
Для детальнішого аналізу рекомендуються засоби налагодження Windows: Налагоджувач Windows (WinDbg.exe) з графічним інтерфейсом, а також Налагоджувач ядра (KD.exe) для командного рядка. Обидва включені до пакету Інструменти налагодження для Windowsякі ви можете завантажити та встановити, вибравши типову інсталяцію. За замовчуванням вони встановлюються за таким шляхом, як C:\Program Files\Засоби налагодження для Windows.
Крім того, існують сторонні утиліти, такі як Хто розбився які автоматизують частину роботи: вони зчитують файли .dmp з папки Minidump, інтерпретують інформацію про перевірку помилок та надають вам звіт у зрозумілому тексті, вказуючи задіяні модулі та загальні пропозиції (оновлення драйверів, перевірка обладнання тощо).
Як відкрити дамп пам'яті за допомогою WinDbg або KD
Після встановлення засобів налагодження Windows ви можете відкрити дамп пам'яті з командного рядка за допомогою WinDbg або KD. Перш за все, корисно підготувати дві речі: шлях до символів Налагодження Windows та маршрут до системних бінарних файлів (наприклад, вміст папки I386 на інсталяційному компакт-диску або її еквівалент на диску).
Основна процедура завантаження дампа буде такою:
- Відкрийте консоль (cmd) з Пуск > Виконати, письмо
cmdта натисканням кнопки OK. - Перейдіть до каталогу, де встановлені інструменти, наприклад:
cd C:\Program Files\Debugging Tools for Windows - Виконайте одну з наступних команд, адаптуючи шляхи до вашого середовища:
windbg -y SymbolPath -i ImagePath -z DumpFilePath
kd -y SymbolPath -i ImagePath -z DumpFilePath
У цих командах параметри означають:
| Заповнювач | Опис |
|---|---|
| СимвольнийШлях | Локальний шлях, куди було завантажено файли символів, або рядок сервера символів (наприклад, за допомогою srv*C:\Symbols*https://msdl.microsoft.com/download/symbols), включаючи папку кешу. |
| Шлях до зображення | Шлях до системних бінарних файлів (наприклад, C:\Windows\I386 або папку, де розташовані відповідні виконувані файли та DLL-бібліотеки). |
| ШляхДампФайлу | Повний шлях та ім'я файлу дампа пам'яті, який потрібно перевірити, наприклад C:\Windows\Minidump\minidump.dmp o C:\Windows\MEMORY.DMP. |
Як практичний приклад, якщо ви скопіювали вміст папки I386 з інсталяційного компакт-диска до C:\Windows\I386У вас є каталог символів у C:\Символи і ви хочете відкрити файл C:\Windows\Minidump\minidump.dmpВи можете використовувати ці команди:
kd -y srv*C:\Symbols*https://msdl.microsoft.com/download/symbols -i C:\Windows\i386 -z C:\Windows\Minidump\minidump.dmp
Або, якщо ви надаєте перевагу графічному інтерфейсу налагоджувача, щось на кшталт цього:
windbg -y srv*C:\Symbols*https://msdl.microsoft.com/download/symbols -i C:\Windows\i386 -z C:\Windows\Minidump\minidump.dmp
Основні команди для перевірки дампа
Після завантаження файлу дампа в WinDbg або KD існує кілька класичних команд, які дозволяють витягти найважливішу інформацію, не гублячись у деталях. Більшість із них вводяться в командному рядку налагоджувача та повертають текстовий вивід з аналізом.
Серед найкорисніших є:
!analyze -show: Він швидко відображає код помилки Stop (bugcheck) та її основні параметри.!analyze -v: Він генерує детальний аналіз, вказуючи модуль, «ймовірно відповідальний» за збій, описові ланцюжки, можливі причини та подальші рекомендації.lm N T: Перелічує вказані завантажені модулі, включаючи їхній стан, версію та шлях. Дуже корисно для пошуку сторонніх драйверів, які можуть бути задіяні.
Офіційна документація для інструментів налагодження містить повний довідник команд, доступний у файлі довідки, такому як Debugger.chm у папці встановлення (наприклад, C:\Program Files\Debugging Tools for Windows\Debugger.chm). Там ви можете глибше зануритися в розширені команди, якщо вам потрібен детальніший аналіз.
Якщо ви зазвичай аналізуєте дампи з подібними параметрами, ви навіть можете створити пакетний файл (наприклад, Dump.bat) у папці інструментів налагодження з таким вмістом, як:
cd "C:\Program Files\Debugging Tools for Windows"
kd -y srv*C:\Symbols*https://msdl.microsoft.com/download/symbols -i C:\Windows\i386 -z %1
Таким чином, щоразу, коли ви захочете переглянути дамп, вам потрібно буде лише ввести щось на кшталт цього в консоль: dump C:\Windows\Minidump\minidump.dmp а скрипт подбає про виклик KD з відповідними параметрами.
Приклад результату аналізу DMP-файлу
Щоб отримати уявлення про те, як виглядає аналіз дампа, класичним прикладом є зупинна помилка типу 0xC0000218 (Помилка файлу реєстру)де система не може завантажити кущ з реєстру, оскільки він пошкоджений, відсутній або непридатний для запису. Під час типового аналізу за допомогою засобів налагодження ви можете побачити щось на кшталт:
BugCheck C0000218, {e144c418, 0, 0, 0}
Probably caused by : ntoskrnl.exe ( nt!ExRaiseHardError+13c )
ERROR_CODE: (NTSTATUS) 0xc0000218 - {Registry File Failure} The registry cannot load the hive (file): %hs or its log or alternate. It is corrupt, absent, or not writable.
Команда !analyze -v Я б розширив ці дані, показавши стек викликів (STACK_TEXT), задіяні функції (наприклад CmpLoadHiveThread, ExRaiseHardError) та можливий модуль подальшого спостереження («Подальші дії: Власник машини»), що вказує на те, що наступним кроком є перевірка системи з точки зору власника машини.
Хоча перетворення цієї інформації на прямі дії не завжди є простим, це часто дає чіткі підказки для подальшого розслідування: ремонт платівокПеревірка диска, відновлення з резервної копії, оновлення драйверів, перевстановлення Windows або, в крайніх випадках, перевірка обладнання.
Зрештою, справжня цінність файлу memory.dmp полягає в тому, що він слугує детальним «знімком» системи на момент катастрофи: якщо у вас виникли проблеми повторювані збої, помилки керування пам'яттю або загадкові сині екраниВитративши час на правильне налаштування дампів, зберігаючи їх протягом усього розслідування та аналізуючи за допомогою відповідних інструментів, ви можете вирішити, чи доведеться шукати щось не так, як слід, чи швидко знайти компонент, що спричиняє проблему.
Захоплювався технікою з дитинства. Я люблю бути в курсі подій у секторі та, перш за все, повідомляти про це. Ось чому я вже багато років присвячую комунікації на веб-сайтах технологій і відеоігор. Ви можете знайти, як я пишу про Android, Windows, MacOS, iOS, Nintendo або будь-яку іншу пов’язану тему, яка спадає вам на думку.