Невеликий дамп пам'яті. Читання файлів дампа пам'яті Windows створює для налагодження. Як отримати засіб автоматизації розділи реєстру та файли підкачування

У Windows дуже часто трапляються помилки, навіть у випадку з «чистою» системою. Якщо звичайні помилкипрограм вирішити можна (з'являється повідомлення про компонент, що бракує), то виправити критичні помилки буде набагато складніше.

Що таке дамп пам'яті у Windows

Для вирішення проблем із системою зазвичай використовують аварійний дамп пам'яті – це знімокчастини або повного обсягу оперативної пам'ятіта розміщення його на енергонезалежний носій (жорсткий диск). Іншими словами, вміст оперативної пам'яті повністю або частково копіюється на носій і користувач може провести аналіз дампа пам'яті.

Існує кілька видів дампів пам'яті:

Малий дамп(Small Memory Dump) – зберігає мінімальний об'єм ОЗУ, де знаходяться відомості щодо критичних помилок (BSoD) та компонентів, які були завантажені під час роботи системи, наприклад, драйвера, програми. MiniDumpзберігається шляхом C:\Windows\Minidump.

Повний дамп(Complete Memory Dump) – зберігається повний обсяг ОЗП. Це означає, що розмір файлу дорівнюватиме обсягу оперативної пам'яті. Якщо місця на диску мало, проблематично зберегти, наприклад, 32 Гб. Також трапляються проблеми зі створенням файлу дампа пам'яті більше 4 Гб. Цей видвикористовується дуже рідко. Зберігатися на шляху C:\Windows\MEMORY.DMP.

Дамп пам'яті ядра– зберігається лише інформація, що стосується ядра системи.

Коли користувач дійде до аналізу помилки, йому достатньо використовувати лише міні-дамп. Але перед цим він обов'язково має бути включений, інакше розпізнати проблему не вдасться. Також для більш ефективного виявлення аварії використання повного знімка пам'яті краще.

Інформація у реєстрі

Якщо заглянути в реєстр Windows, то можна виявити деякі корисні параметризнімків. Клацаємо клавіші Win+R, вводимо команду regeditі відкриваємо такі гілки:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

У цій гілці користувач виявить такі параметри:

  • AutoReboot– активація або вимкнення перезавантаження після створення синього екранусмерті (BSoD).
  • DumpFile- Назва видів дампів та розташування.
  • CrashDumpEnabled– номер створюваного файлунаприклад, число 0 - дамп не створюється; 1 - створення повного дампа; 2 - створення дампа ядра; 3 - створення малого дампа.
  • DumpFilters– Дозволяє додати нові функції перед створенням знімка. Наприклад, шифрування файлу.
  • MinidumpDir- Назва малого дампа та його розташування.
  • LogEvent– активація запису відомостей до системного журналу.
  • MinidumpsCount- Задати кількість створюваних малих дампів. (Перевищення цієї кількості знищуватиме старі файли та замінюватиме їх).
  • Overwrite- Функція для повного дампа або системного. При створенні нового знімка попередній завжди замінюватиметься на новий.
  • DedicatedDumpFile- створення альтернативного файлузнімка та вказівка ​​його шляху.
  • IgnorePagefileSize– використовується для тимчасового розташування знімка без використання файлу підкачки.

Як це працює

При виникненні збою система повністю зупиняє свою роботу і, якщо створення дампів активно, у файл, що поміщається на диск, буде записана інформація про проблему. Якщо щось трапилося з фізичними компонентами, то працюватиме аварійний код, а залізо, яке дало збій, буде вносити будь-які зміни, що обов'язково позначиться у знімку.

Зазвичай файл зберігається у виділеному для файлу підкачки блоці жорсткого диска, після появи BSoD файл перезаписується в той вигляд, який сам і налаштував користувач (Малий, повний або дамп ядра). Хоча, в сучасних ОС участь файлу підкачування не обов'язково.

Як увімкнути дампи

У Windows 7:

У Windows 8 та 10:

Тут процес трохи схожий, у відомості про систему можна потрапити так само, як у Windows 7. У «Десятці» обов'язково відкриваємо « Цей комп'ютер», натискаємо по вільному місцюправою кнопочкою мишки та вибираємо « Властивості». Інакше туди можна потрапити через панель керування.

Другий варіант для Windows 10:


Слід зазначити, що в нових версіях Windows 10 з'явилися нові пункти, яких не було в сімці:

  • Малий дамппам'яті 256 КБ – мінімальні дані про збій.
  • Активний дамп– з'явився в десятій версії системи та зберігає тільки активну пам'ятькомп'ютера, ядра системи та користувача. Рекомендується використовувати на серверах.

Як видалити дамп

Достатньо зайти в каталог, де зберігаються знімки пам'яті та просто видалити їх. Але є й інший спосіб видалення – використання утиліти очищення диска:

Якщо жодних пунктів виявлено не було, можливо, дампи не були включені.

Навіть якщо ви колись включали їх, деякі використовувані утиліти оптимізації системи можуть легко вимкнути деякий функціонал. Часто багато чого відключається при використання SSDнакопичувачів, оскільки багаторазові процедури читання та запису сильно шкодять здоров'ю цього диска.

Аналіз дампа пам'яті за допомогою WinDbg

Завантажуємо з офіційного сайту Microsoft цю програмуна кроці 2, де описано « ВстановленняWDK» - https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk.

Щоб працювати з програмою ще знадобиться спеціальний пакет символів налагодження. Він називається Debugging Symbols, Раніше його можна було завантажити з сайту Microsoft, але тепер вони відмовилися від цієї ідеї і доведеться використовувати функцію програми File — « Symbol File Path», куди слід вписати наступний рядокта натиснути ОК:

set _NT_SYMBOL_PATH=srv*DownstreamStore*https://msdl.microsoft.com/download/symbols

Якщо не спрацювало, пробуємо ось цю команду:

SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols

Знову натискаємо пункт "File" і вибираємо опцію "Save Workspace".

Утиліта налаштована. Залишається вказати шлях до файлів дампів пам'яті. Для цього натискаємо File і клацаємо опцію « OpenCrashDump». Розташування всіх дамп вказано на початку статті.

Після вибору закінчиться аналіз і проблемний компонент буде автоматично виділено. Для отримання більшої кількостіінформації в цьому ж вікні можна запровадити таку команду: !analyze -v

Аналіз за допомогою BlueScreenView

Завантажити інструмент безкоштовно можна з цього сайту - http://www.nirsoft.net/utils/blue_screen_view.html. Встановлення не потребує якихось навичок. Використовується лише у Windows 7 та вище.

Запускаємо та налаштовуємо. Натисніть «Установки» (Options) – « Додаткові параметри »(Advanced Options). Виберіть перший пункт « Завантажувати МініДампи з цієї папки» і вказуємо каталог - C:WINDOWSMinidump. Хоча можна просто натиснути кнопку "За замовчуванням". Натискаємо ОК.

У головному вікні з'являться файли дампа. Він може бути як один, так і кілька. Для його відкриття достатньо натиснути на нього мишкою.

У нижній частині вікна буде відображено компоненти, які були задіяні на момент збою. Червоним кольором буде виділено винуватця аварії.

Тепер натискаємо «Файл» та вибираємо, наприклад, пункт « Знайти у Google код помилки + драйвер». Якщо знайшли потрібний драйвер, встановіть та перезавантажте комп'ютер. Можливо, помилка зникне.

Консультуючи клієнтів, я звернув увагу на те, що найчастіше для них єдиний спосібборотьби з синім екраном смерті (Blue Screen of Death, BSoD) – це пошук несправності за номером STOP-помилки. Зазвичай такий підхід може допомогти вибрати загальний напрямок вирішення проблеми, але не завжди дозволяє її локалізувати. Наприклад, визначити, який конкретний драйвер пристрою викликає BSoD. Строго кажучи, аналіз дампів пам'яті - це основний спосіб боротьби з STOP-помилками.

У разі виникнення STOP-помилки Microsoft Windowsможе записати налагоджувальну інформацію. Для цього необхідно виконати такі дії:

1. Натисніть кнопку Пускта виберіть у меню Налаштуванняпункт Панель управління
2. Двічі клацніть значок Система
3. Відкрийте вкладку Додатковота натисніть кнопку
4. В області Запис налагоджувальної інформації виберіть пункт Малий дамп пам'яті (64 КБ)

У файлі малого дампа пам'яті записується мінімальна інформація, що дає змогу встановити причину збою комп'ютера. Для цього на завантажувальному томіпотрібний файл підкачки розміром не менше 2 МБ. За промовчанням файли малої дампи пам'яті зберігаються у папці %SystemRoot%\Minidump.

Файли малого дампа пам'яті містять такі відомості:

  • Повідомлення про непереборну помилку, її параметри та інші дані
  • Список завантажених драйверів
  • Контекст процесора (PRCB), у якому стався збій
  • Відомості про процес та контекст ядра (EPROCESS) для процесу, що спричинив помилку
  • Відомості про процес та контекст ядра (ETHREAD) для потоку, що спричинив помилку
  • Стек дзвінків у режимі ядра для потоку, що спричинив помилку

Перевага файлу малого дампа пам'яті в тому, що він має невеликий розмір. В даний час обсяг оперативної пам'яті, що встановлюється в комп'ютери, вимірюється гігабайтами, таким чином збереження файлу такого розміру займе тривалий часі може спричинити труднощі при обмеженому просторі жорсткого диска. З іншого боку, обмеженість відомостей, що містяться у файлі малого дампа, не завжди дозволяє виявити помилки, які не були безпосередньо викликані потоком, що виконувався в момент їх виникнення.

Для аналізу дампів пам'яті використовуються утиліти kd.exeі windbg.exe. Ці утиліти входять до набору Debugging Tools for Windows. Щоб спростити роботу з ними, рекомендую використовувати скрипт (автор Alexander Suhovey). Вам також знадобиться утиліта reg.exe(включена в Microsoft Windows XP і вище; для Windows 2000 входить до складу Windows 2000 Support Tools).

Завантажте та розпакуйте архів зі скриптом у папку D:\KDFE. Для роботи відладчику потрібні символьні файли, які можна завантажити там, де і Debugging Tools for Windows. Повний розмір пакета з цими файлами досить значний (може становити більше 1Гб залежно від обраної платформи). Тому скрипт налаштований таким чином, щоб автоматично завантажувати з Microsoft Symbol Server лише необхідні символьні файли для роботи з конкретним дампом пам'яті та зберігати їх локально на диску для подальшого використання. При необхідності можна відредагувати скрипт та змінити змінну smbpath, яка вказує на папку, до якої kd.exe зберігатиме необхідні файли.

Для використання виконайте kdfe.cmd з ім'ям файлу дампа пам'яті як параметр. Наприклад:

D:\KDFE>kdfe mini111208-01.dmp

Analyzing "D:\KDFE\Mini111208-01.dmp", please wait... Done.

Crash date: Wed Nov 12 08:35:56.214 2008 (GMT+2)
Stop error code: 0x50
Process name: AUM.exe
Probably caused by: nv4_disp.dll (nv4_disp+41213)

Слід зазначити, що бувають ситуації, коли через некоректної роботиодного з драйверів, STOP-помилка згодом виникає у абсолютно нормальному драйвері. У цьому випадку рекомендую використовувати утиліту verifier.exe(Див.

Впевнений, що дуже велика кількістьлюдей, які користуються комп'ютером, чудово знають, що таке синій екран, BSoD помилкаабо екран смерті. Але, в той же час я впевнений, що майже ніхто не знає про те, що крім відображення на екрані помилки, система також залишає додатковий звіт у вигляді dump файла. Саме з його допомогою можна легко визначити, що саме є причинною збою системи і появи синього екрану.

Тому саме зараз я хочу поговорити саме про ці файли, а точніше про те, як і чим відкрити dump файл, щоб без проблем і швидко ми змогли не тільки визначити але і подолати проблему з BSoD екраном.

Відкриваємо файли dump для визначення джерела проблеми

Насправді найчастіше до dump файлів звертаються саме системні адміністратори, які займаються ремонтом комп'ютерів та ноутбуків. Але іноді це може знадобитися навіть самим звичайним користувачам, які просто намагаються самостійно відновити свою операційну систему.

Для перегляду dump файлу нам, звичайно ж, знадобиться стороння утиліта, оскільки, на жаль, у власних ресурсах операційних систем Windowsможливість відкрити файли dump для аналізу, не була передбачена розробниками Microsoft.

Але, незважаючи на те, що за замовчуванням для перегляду dump файлів Windows не має встановлених утиліт, Майкрософт все ж таки випустили програму під назвою Debugging Tools for Windows, але як на мене, вона не дуже зручна. Тому я вирішив показати, як відкрити файл dump за допомогою іншої більш простий і точно не менше корисної програмиз назвою BlueScreenView.

Можливо ви запитаєте чому саме ця програма, а не якась інша? Так ви маєте рацію, існує достатня кількість подібних утиліт. Але, коли я тільки починав працювати з дампами, це була моя перша програма, за допомогою якої я відкрив dump файл і виправив проблему з синім екраном. І оскільки мене вона мене в усьому влаштовувала, я її використовую досі.

Як відкрити та подивитися DUMP файли за допомогою BlueScreenView

Отже, завантажуємо BlueScreenViewта запускаємо її на комп'ютері. До речі, одним із плюсів чому для перегляду dump файлів я вибрав саме цю утиліту, є в тому, що її не потрібно встановлювати на комп'ютер, так як вона є портативною, що дозволяє запустити BlueScreenView без попередньої установкина комп'ютер.

Що ж, запустивши програму, з'явиться інтерфейс утиліти, в якому ви відразу зможете побачити всі можливі dump файли, які були раніше збережені на комп'ютері. А точніше ті, що знаходяться у папці C:\Windows\MiniDumpяка спочатку була призначена саме для збереження файлів такого типу. Таким чином, у BlueScreenView в налаштування за замовчуванням встановлено пошук дамп файлів саме в цій директорії. За бажанням або потребою ви можете змінити цей шлях, просто натиснувши на першу іконку, яка знаходиться поряд із піктограмою збереження.

Але, давайте повернемося до звітів, що відкрилися. На первинному екрані ви зможете побачити інформацію про те, коли був створений файл, коли, ну і звичайно, коротку інформацію, безпосередньо, про коди помилки.

Клікнувши двічі по одному з вибраних файлів, ви зможете отримати більше детальну інформаціюпро причину збою операційної системи. Наприклад, дізнаєтесь який драйвер викликав появу синього екрана, а також назву компанії виробника драйвера, його версію та інше.

Можливо вам з цього звіту буде нічого не зрозуміло, але справжнє призначення цієї статті в тому, щоб ви, у разі синього екрану, могли керуючись наочним прикладом відкрити dump файл і зробити скріншот його звіту, а я б у свою чергу допоміг вам у ньому. розібратися.

Дана невелика замітка ставить за мету показати, яким же чином можна сконфігурувати систему, щоб отримати в своє розпорядження аварійний дамп пам'яті Windows тобто дамп, який може бути створений у разі виникнення критичного збою, що характеризується появою синього екрану смерті (BSOD). Що ж таке дамп взагалі, для чого він нам потрібний і що являє собою, які проблеми він покликаний вирішити і яку інформацію містить в собі?

Дамп пам'яті ( memory dump) - вміст робочої пам'ятіпроцесу, ядра або всієї операційної системи, що включає, крім робочих областей, додаткову інформаціюпро стан регістрів процесора, вміст стека та інші службові структури.

Для чого нам може знадобитися цей вміст, тобто дамп пам'яті Windows? Мабуть, найчастіше дамп пам'яті використовується вивчення причин виникнення системного збою (), який став причиною повного зупинки операційної системи. Крім того, стан пам'яті може використовуватися і для інших цілей. Немаловажний і той факт, що дамп пам'яті - це буквально єдиний спосіб отримання інформації про будь-який збій! А зняття (отримання) дампа пам'яті системи - це, власне, єдиний точний спосіб отримання миттєвого відбитка (копії) вмісту фізичної пам'яті системи.

Чим точніше вміст дампи відображатиме стан пам'яті в момент збою, тим докладніше ми зможемо проаналізувати аварійну ситуацію. Тому вкрай важливо отримати саме актуальну копію фізичної пам'яті системи у строго певний моментчасу, що безпосередньо передує збою. А єдиний спосіб зробити це – створити повний аварійний дамп пам'яті. Причина досить тривіальна - коли відбувається створення аварійного дампа пам'яті системи, чи в результаті збою, чи внаслідок штучно змодельованої ситуації, система в цей момент отримання управління аварійними функціями (KeBugCheckEx) перебуває в абсолютно незмінному (статичному) стані, тому між моментом виникнення збою та моментом закінчення запису даних на носій ніщо не змінює вміст фізичної пам'яті, і у оригінальному стані записується на диск. Ну це теоретично, а в житті зрідка, але трапляються ситуації, що через несправні апаратні компоненти, сам дамп пам'яті може бути пошкоджений, або в процесі запису дампа станція може підвиснути.

Переважна більшість випадків, з моменту початку процесу створення аварійного дампа пам'яті, і до моменту завершення запису вмісту пам'яті на диск, інформація в пам'яті залишається незмінною.

Теоретично, статичність (незмінність) "відбитка" пам'яті пояснюється тим, що коли викликається функція KeBugCheckEx, що виводить на екран інформацію про збій і процес створення дампи пам'яті, що стартує, система вже повністю зупинена і вміст фізичної пам'яті записано в блоки, займані на диску файлом підкачки, після цього, вже в процесі подальшого завантаження операційної системи воно скидається у файл на системному носії. Ну а практично один раз спостерігав ситуацію, коли боїться материнська платане давала зберегти дамп пам'яті: а) підвисаючи в процесі роботи логіки збереження дампа (процес не доходив до 100%); Тому, незважаючи на те, що система в момент створення дампи пам'яті вже повністю зупинена, і працює тільки аварійний код, збійне залізо може вносити свої корективи в будь-яку логіку на будь-якому етапі функціонування.
Традиційно, на початковому етапіДля збереження дампа пам'яті Windows використовуються блоки диска, виділені файлу підкачки (pagefile). Потім, після виникнення синього екрана та перезавантаження, дані переміщаються в окремий файл, а потім файл перейменовується за шаблоном, який залежить від типу дампа. Однак, починаючи з версії Windows Vista, подібний стан речей можна змінити, тепер користувачу дана можливість зберігати виділений дамп без участі файлу підкачки, поміщаючи інформацію про збій у тимчасовий файл. Зроблено це для того, щоб унеможливити помилки конфігурації, пов'язані з неправильним налаштуваннямрозміру та положення файлу підкачки, що часто призводило до проблем у процесі збереження дампа пам'яті.
Давайте подивимося, які ж різновиди дамп дозволяє нам створювати операційна система Windows:

  • Дамп пам'яті процесу (додатки);
  • Дамп пам'яті ядра;
  • Повний дамп пам'яті (Дамп доступної частини фізичної пам'яті системи).

Усі аварійні дампи можна розділити на дві основні категорії:

  • Аварійні дампи з інформацією про виключення, що виникло. Зазвичай створюються в автоматичному режимі, коли у додатку/ядрі виникає необроблений виняток (unhandled exception) і, може бути викликаний системний (вбудований) отладчик. У цьому випадку інформація про виключення записується в дамп, що полегшує визначення типу виключення та місця виникнення при подальшому аналізі.
  • Аварійні дампи без інформації про виключення. Зазвичай створюються користувачем вручну, коли необхідно створити миттєвий знімок процесу для подальшого аналізу. Аналіз цей має на увазі не визначення типу виключення, оскільки ніякого винятку і не виникало, а аналіз зовсім іншого роду, наприклад, вивчення структур даних процесу та інше.

Конфігурація дампа пам'яті ядра

Ви повинні бути залогінені під адміністративною обліковим записомдля виконання дій, що описуються в цьому розділі.

Давайте безпосередньо перейдемо до налаштування параметрів аварійного дампа пам'яті Windows. Для початку нам необхідно зайти у вікно властивостей системи одним і наведених способів:

  1. Натиснути правою кнопкоюмиші на значку "Мій комп'ютер" - "Властивості" - "Додаткові параметри системи" - "Додатково".
  2. Кнопка "Пуск" - "Панель керування" - "Система" - "Додаткові параметри системи" - "Додатково".
  3. Поєднання клавіш "Windows" + "Pause" - "Додаткові параметри системи" - "Додатково".

  4. control system.cpl,3
  5. Виконати у командному рядку(cmd):
    SystempropertiesAdvanced

Результатом описаних дій є відкриття вікна "Властивості системи" та вибір вкладки "Додатково":

Після цього в розділі "Завантаження та відновлення" ми натискаємо вибираємо "Параметри" і цим відкриваємо нове вікно під назвою "Завантаження та відновлення":

Усі параметри аварійного дампа згруповані у блоці параметрів під назвою "Відмова системи". У цьому блоці ми можемо задати такі параметри:

  1. Записати події до системного журналу.
  2. Виконати автоматичне перезавантаження.
  3. Запис налагоджувальної інформації.
  4. Дампа файл.
  5. Замінювати існуючий файлдампа.

Як бачите, багато параметрів зі списку досить тривіальні та прості у розумінні. Однак, я хотів би докладніше зупинитися на параметрі "Файл дампа". Параметр представлений у вигляді спадаючого списку, і має чотири можливі значення:

Малий дамп пам'яті (Small memory dump)

Малий дамп пам'яті (мінідамп, minidump) – це файл, який містить найменший обсяг інформації про збій. Найменший з усіх можливих дампів пам'яті. Незважаючи на очевидні мінуси, найчастіше саме мінідампи використовуються як інформація про збій для передачі постачальнику сторонніх драйверівз метою подальшого вивчення.
Склад:

  • Повідомлення про помилку.
  • Значення помилки.
  • Параметри помилки.
  • Контекст процесора (PRCB), у якому стався збій.
  • Відомості про процес та контекст ядра (EPROCESS) для процесу, що є причиною збою, з усіма його потоками.
  • Відомості про процес та контекст ядра (ETHREAD) для потоку, що є причиною збою.
  • Стек режиму ядра для потоку, що спричинив збій.
  • Список завантажених драйверів.

Розміщення: %SystemRoot%\Minidump\MMDDYY-XXXXX-NN.dmp. Де MMDDYY - місяць, день та рік відповідно, NN - порядковий номердампа.
Об'єм: Розмір залежить від розрядності операційної системи: потрібно всього 128 кілобайт для 32-розрядної і 256 кілобайт для 64-розрядної ОС у файлі підкачки (або у файлі, вказаному в DedicatedDumpFile). Оскільки виставити настільки малий розмір ми зможемо, то округляємо до 1 мегабайта.

Дамп пам'яті ядра (Kernel memory dump)

Даний тип дампа містить копію всієї пам'яті ядра на момент збою.
Склад:

  • Список виконуваних процесів.
  • Стан потоку.
  • Сторінки пам'яті режиму ядра, що знаходяться у фізичній пам'яті під час збою: пам'ять драйверів режиму ядра та пам'ять програм режиму ядра.
  • Пам'ять апаратно-залежного рівня (HAL).
  • Список завантажених драйверів.

У дампі пам'яті ядра відсутні нерозподілені сторінки пам'яті та сторінки режиму користувача. Погодьтеся, адже малоймовірно, що сторінки процесу режиму користувача будуть нам цікаві при системному збої (BugCheck), оскільки зазвичай системний збійініціюється кодом режиму ядра.

Об'єм: Варіюється залежно від розміру адресного простору ядра, виділеного операційною системоюта кількості драйверів режиму ядра. Зазвичай потрібно близько третини обсягу фізичної пам'яті у файлі підкачки (або у файлі, вказаному в DedicatedDumpFile). Може змінюватись.

Повний дамп пам'яті (Complete memory dump)

Повний дамп пам'яті містить копію фізичної пам'яті (ОЗУ, RAM) в момент збою. Відповідно, до файлу потрапляє і весь вміст пам'яті системи. Це одночасно перевага і головний недолік, оскільки його розмір на деяких серверах з великим обсягом ОЗУ може виявитися суттєвим.
Склад:

  • Усі сторінки "видимої" фізичної пам'яті. Це практично вся пам'ять системи, за винятком областей, що використовуються апаратною частиною: BIOS, простір PCI та ін.
  • Дані процесів, які виконувались у системі на момент збою.
  • Сторінки фізичної пам'яті, які не відображені на віртуальний адресний простір, але можуть допомогти у вивченні причин збою.

У повний дамппам'яті не включаються, за замовчуванням, області фізичної пам'яті, що використовується BIOS.
Розміщення: %SystemRoot%\MEMORY.DMP . Попередній дамп перезаписується.
Об'єм: У файлі підкачки (або у файлі, вказаному в DedicatedDumpFile) потрібен обсяг, що дорівнює розміру фізичної пам'яті + 257 мегабайт (ці 257 Мб діляться на якийсь заголовок + дані драйверів). Насправді ж, у деяких ОС, нижній поріг файлу підкачки можна виставити точно значення розміру фізичної пам'яті.

Автоматичний дамп пам'яті (Automatic memory dump)

Починаючи з Windows 8/Windows Server 2012, у систему введено новий типДампа під назвою "Автоматичний дамп пам'яті", який встановлюється типом за замовчуванням. І тут система сама вирішує, який дамп пам'яті записати у ситуації тієї чи іншої збою. Причому логіка вибору залежить від багатьох критеріїв, у тому числі від частоти падіння операційної системи.

Після зміни конфігурації дампа пам'яті Windows може знадобитися перезавантаження комп'ютера.

Параметри реєстру

Розділ реєстру, який визначає параметри аварійного дампа:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

Параметри:

Параметр Тип Опис
AutoReboot REG_DWORD Увімкнення/вимкнення автоматичного перезавантаженняу разі виникнення BSOD.
CrashDumpEnabled REG_DWORD Вид створюваної дампи.
  • 0 – не створювати дамп пам'яті;
  • 1 – повний дамп пам'яті;
  • 2 – дамп пам'яті ядра;
  • 3 – малий дамп пам'яті;
DumpFile REG_EXPAND_SZ Шлях та назва дампа пам'яті ядра та повного дампа пам'яті.
DumpFilters REG_MULTI_SZ Драйвер-фільтр у стеку драйверів дампа пам'яті. Дозволяє додавати новий функціонална етапі створення аварійних дампів. Наприклад, шифрування вмісту дампа. Змінювати значення не рекомендується.
LogEvent REG_DWORD Запис події у системний журнал.
MinidumpDir REG_EZPAND_SZ Шлях та назва малого дампа пам'яті.
MinidumpsCount REG_DWORD Максимальна кількість малих дампів пам'яті. При перевищенні починають затиратися старіші версії.
Overwrite REG_DWORD Замінювати існуючий файл дампа. Тільки для дампа пам'яті ядра та повного дампа пам'яті.
IgnorePagefileSize REG_DWORD Ігнорує стандартний файлпідкачування як місце для тимчасового (проміжного) зберігання дампи пам'яті. Вказує необхідність записати дамп пам'яті в окремий файл. Використовується разом із опцією DedicatedDumpFile.
DedicatedDumpFile REG_EZPAND_SZ Шлях та назва тимчасового альтернативного файлу для запису дампа пам'яті. У другому проході дані все одно будуть переміщені DumpFile/MinidumpDir.

Ручне створення дампа пам'яті

Вище ми описували налаштування для автоматичного створенняаварійних дампів системи у разі виникнення критичної помилки, тобто необроблюваного виключенняу коді ядра. Але ж у реального життяКрім падіння операційної системи, існують ситуації, коли необхідно отримати дамп пам'яті системи в конкретний момент часу. Як бути у цьому випадку? Існують методи отримання миттєвої копії всієї фізичної пам'яті, наприклад, за допомогою команди.dump у відладчиках WinDbg/LiveKD. LiveKD - програма, що дозволяє запускати відладчик ядра Kd у системі, що функціонує в локальному режимі. У відладчику WinDbg також є така можливість. Однак метод отримання дампа "на льоту" не точний, оскільки дамп створюється в цьому випадку "суперечливий", так як для створення дампа потрібен час, а у разі використання відладчика режиму ядра система продовжує працювати та вносити зміни до сторінок пам'яті.

Інструкція з інтерпретації файлу малого дампа пам'яті.

Дуже часто можна зустріти питання, пов'язані з появою синього екрану смерті (Blue Screen Of Death = BSOD). Однак практично будь-яка людина може самостійно визначити причину виникнення помилки, що призвела до появи BSOD. Справа в тому, що під час появи синього екрану на жорсткий диск записується спеціальний файл , який називається Малий Дамп Пам'яті(Звичайно, за умови, що його запис дозволено в налаштуваннях).

Увімкнути запис Малого Дампа можна так:

1. Натисніть кнопку Пускта виберіть у меню Налаштуванняпункт Панель управління.

2. Двічі клацніть піктограму Система.

3. Відкрийте вкладку Додатковота натисніть кнопку .

4. В списку Запис налагоджувальної інформаціїВиберіть Малий дамп пам'яті (64 КБ).

У файлі малого дампа пам'яті записується мінімальний набір корисної інформації, що дозволяє визначити причину несподіваного збою комп'ютера. Для цього параметра на завантажувальному томі потрібен файл підкачки розміром не менше 2 МБ. На комп'ютерах з операційною системою Microsoft Windows 2000 або пізнішими версіями Windowsпри непередбаченому збої комп'ютера щоразу створюється новий файл.

У разі виникнення наступної помилки та створення другого файлу малого дампа пам'яті Windows зберігає попередній файл. Windows надає кожному файлу окреме ім'я із зазначенням дати. Наприклад, Mini022900-01.dmp - це перший файл дампа пам'яті, створений 29 лютого 2000. Список всіх файлів малого дампа пам'яті зберігається в папці %SystemRoot%\Minidump.

Засоби інтерпретації файлу малого дампа пам'яті

Для завантаження файлів малого дампа пам'яті можна скористатися службовою програмою Dump Check(Dumpchk.exe). Програма Dumpchk.exe також використовується для перевірки правильності створення файлу дампа пам'яті. Dump Check не вимагає доступу до символів налагодження. Програма Dump Check входить до комплекту засобів підтримки Microsoft Windows 2000 Support Toolsі Microsoft Windows XP Support Tools.Завантажити ці пакети ви можете, пройшовши за цим посиланнямhttp://www.microsoft.com/whdc/devtools/debugging/default.mspx

Для інтерпретації файлів малого дампа пам'яті можна також скористатися засобами WinDbgабо the KD.exe. Програми WinDbgта KD.exe входятьв останню версіюпакету засобів налагодження для Windows.

Як відкрити файл дампа пам'яті

Щоб відкрити файл дампа пам'яті, виконайте наведені нижче дії.

  1. Натисніть кнопку Пуск, виберіть пункт Виконати, введіть команду cmdта натисніть кнопку ОК.
  2. Перейдіть в папку "Debugging Tools for Windows".Для цього введіть у командному рядку

cd c:\program files\debugging tools for windows

та натисніть клавішу ENTER.

  1. Для завантаження файлу дампа пам'яті в програму налагодження введіть одну з наведених нижче команд і натисніть клавішу ENTER:

windbg -yшлях_до_символу -iшлях_до_образу -zшлях_до_файлу_дампа

kd -yшлях_до_символу -iшлях_до_образу -zшлях_до_файлу_дампа

Розділ-заглушка

Опис

шлях_до_символу

Локальний шлях до папки, в яку були завантажені файли символів, або шлях до сервера символів, включаючи папку кеша. Оскільки файл малої дампи пам'яті містить обмежену інформацію, для правильної інтерпретації файлу дампа пам'яті необхідно разом із символами завантажити реальні двійкові файли.

шлях_до_образу

Шлях до цих файлів. Ці файли містяться в папці I386 на компакт-диску Windows XP. Приклад шляху: C: Windows I386.

шлях_до_файлу_дампа

Шлях до аналізованого файлу дампа пам'яті та ім'я цього файлу.

Аналіз файлу дампа пам'яті

Для збору даних у файлі дампа існує кілька команд, включаючи:

  • Команда !analyze -showвідображає код непереборної помилки та її параметри. Код непереборної помилки відомий також як контрольний код неполадки.
  • Команда !analyze -vвідображає детальний результат аналізу.
  • Команда lm N Tвиводить список вказаних завантажених модулів. Дані включають стан та шлях модуля.

Примітка. Команда з розширенням !driversвиводить список усіх драйверів, завантажених на кінцевий комп'ютер, а також відомості про пам'ять, що використовується. Розширення !driversне використовується в Windows XP і більше пізніх версіях. Для відображення відомостей про завантажені драйвери та інші модулі скористайтеся командою lm. Команда lm N Tвиводить відомості у такому ж форматі, як і застаріле розширення !drivers.

Інформацію про інші команди та повний синтаксис команд див. у довідковій документації до засобів налагодження. Довідкова документація до засобів налагодження розміщується у файлі: C:\Program Files\Debugging Tools for Windows\Debugger.chm

Примітка. У разі виникнення проблем, пов'язаних з використанням символів , скористайтесь службовою програмою Symchkдля перевірки правильності завантаження символів. додаткові відомостіПро програму Symchkдив. у наступній статті бази знань Майкрософт:

311503 (http://support.microsoft.com/kb/311503/)Отримання файлів символів налагодження з сервера символів Майкрософт