Що дамп пам'яті windows 7. Аварійний дамп пам'яті Windows

Причиною критичних помилок Windows, що супроводжуються синіми екранами (BSOD), часто є драйвер - знову встановлений або пошкоджений. Визначивши, який саме драйвер є причиною помилки, можна приступати до усунення проблеми: оновити драйвер, відкотитися до більш ранньої версії, повторно інсталювати або видалити програму, яка встановила драйвер тощо. Не завжди назва драйвера відображається на синьому екрані. Однак існує дуже простий спосіб, що дозволяє за допомогою дампа пам'яті визначити проблемний драйвер за кілька хвилин.

Крок 1 — Увімкнення запису дампів пам'яті

Спочатку потрібно переконатися, що запис дампів включено. Для цього потрібно відкрити властивості системи, натиснувши комбінацію клавіш Win+Pause, [в Vista клацнути посилання Додаткові параметрисистеми], перейти на вкладку Додатково, та нарешті натиснути кнопку .

малихдампів пам'яті має бути достатньо для наших цілей.

Зверніть увагу на шлях до папки, куди вони зберігатимуться у разі виникнення критичної помилки.

Тепер ви можете запакувати файл до архіву, прикріпити його до повідомлення у форумі Усунення критичних помилок Windowsі почекати, поки вам хтось повідомить назву проблемного драйвера:) Але ви можете зробити це самостійно, не докладаючи великих зусиль.

Крок 2 - Аналіз дампів за допомогою утиліти MinDumper

Розповідь про утиліту ви знайдете у цій статті.

  1. Завантажте та встановіть Debugging Toolsдля Windows. Вони входять до складу веб-установника Windows SDK , де після запуску потрібно вибрати Debugging Tools в розділі Common Utilities.
  2. Завантажте сценарій(kdfe.cmd), який написав Олександр Суховей та опублікував на ресурсі sysadmins.ru(оскільки живе посилання мені там знайти не вдалося, пропоную своє). Розпакуйте архів у будь-яку папку.
    Примітка. У разі нестандартного розташування папки Program FilesВам може знадобитися вказати шлях до папки в kdfe.cmd, в яку встановлені засоби Debugging Tools for Windows. Використовуйте змінну dbgpath у рядку 41.

Крок 3 - Аналіз дампа пам'яті

Наразі все зводиться до виконання однієї команди. Відкрийте командний рядок і перейдіть до папки, в яку ви розпакували kdfe.cmd. Запустіть файл, вказавши як параметр шлях до файлу дампа пам'яті (у прикладі нижче файл називається Mini1110307-01.dmp)

Здрастуйте друзі, сьогодні розберемо цікаву темуяка допоможе вам у майбутньому при появі синього екранусмерті (BSoD).

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

Нещодавно у мене знову з'явився блакитний екран у Windows 10, але я швидко його позбувся і скоро про це вам розповім.

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

Є три типи дампи пам'яті:

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

Дамп ядра– зберігає інформацію про режим ядра.

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

Розташування, як малого, і повного дампа відрізняється, наприклад, малий дамп перебуває наступним шляхом: %systemroot%\minidump.

Повний дамп знаходиться тут: %systemroot%.

Для аналізу дампів пам'яті існують різні програмиале ми скористаємося двома. Перша – Microsoft Kernel Debuggers, як відомо з назви утиліта від Microsoft. Завантажити її можна з офіційного сайту. Друга програма - BlueScreenView, безкоштовна програма, завантажуємо звідси.

Аналіз дампи пам'яті за допомогою Microsoft Kernel Debuggers

Для різних версійДля систем потрібно завантажувати свій тип утиліти. Наприклад, для 64-х розрядної операційної системи, Потрібна 64-бітова програма, для 32-розрядної - 32-бітна версія.

Це ще не все, вам потрібно завантажити та встановити пакет налагоджувальних символів, потрібні для програми. Називається Debugging Symbols. Кожна версія даного пакетутеж скачується під певною ОС, спершу дізнайтеся яка у вас система, а потім завантажуйте. Щоб вам не шукати будь-де ці символи, ось посилання на скачування . Установка, бажано, повинна здійснюватися цим шляхом: %systemroot%\symbols.

Тепер можна запускати наш відладчик, вікно якого виглядатиме ось так:

Перш ніж проаналізувати дампи, ми дещо налаштуємо в утиліті. По-перше, потрібно вказати програмі, куди ми встановили символи налагодження. Для цього натискаємо кнопку «File» і вибираємо пункт «Symbol File Path», потім вказуємо шлях до символів.


Програма дозволяє витягувати символи прямо з мережі, тому вам навіть не доведеться завантажувати їх (вибачте ті, хто вже скачав). Вони будуть братися з сервером Microsoft, тому все безпечно. Отже, вам потрібно знову відкрити "File", потім "Symbol File Path" і ввести наступну команду:

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


Таким чином, ми вказали програмі, що символи повинні братися з мережі. Як тільки ми це зробили натискаємо File і вибираємо пункт Save Workspace, потім тиснемо ОК.

От і все. Ми налаштували програму на потрібний лад, тепер приступаємо до аналізу дампів пам'яті. У програмі натискаємо кнопку "File", потім "Open Crash Dump"та вибираємо потрібний файл.

Kernel Debuggers розпочне аналіз файлу і після цього виведе результат причини помилки.


У вікні можна вводити команди. Якщо ми введемо !analyze -v, Отримаємо більше інформації.

Ось і все із цією програмою. Щоб зупинити роботу відладчика, виберіть "Debug" і "Stop Debugging".

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

Для аналізу різних помилок та BSoD підійде і програма BlueScreenView, яка має простий інтерфейс, тому проблем із освоєнням виникнути не повинно.

Завантажте програму за вказаним вище посиланням і встановіть. Після запуску утиліти її потрібно налаштувати. Зайдіть до параметрів: «Параметри» — «Додаткові параметри». Відкриється невелике віконце, в якому є кілька пунктів. У першому пункті потрібно вказати місцезнаходження дампів пам'яті. Зазвичай вони знаходяться на шляху C: WINDOWS Minidump. Тоді просто натисніть кнопку "За замовчуванням".


Що можна бачити у програмі? У нас є пункти меню, частина вікна з назвами файлів дампів та друга частина вікна – вміст дампів пам'яті.


Як я казав на початку статті, дампи можуть зберігати драйвера, сам скріншот «екрана смерті» та інша корисна інформація, яка нам може стати в нагоді.

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

В інтернеті можна знайти все про код помилки та драйвер, який може бути виною BSoD. Для цього натискаємо "Файл", а потім «Знайти в Google кодпомилки + Драйвер».


Можна зробити лише драйверів, які були на момент появи помилки. Для цього потрібно натиснути "Налаштування" - "Режим нижнього вікна" - "Тільки драйвера, знайдені в креш-стеку". Або натиснути клавішу F7.

Щоб показати скріншот BSoD, натисніть клавішу F8.

Для показу всіх драйверів та файлів натискаємо F6.

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

Також не забувайте ставити запитання у коментарях.

Консультуючи клієнтів, я звернув увагу на те, що найчастіше для них єдиний спосіб боротьби з синім екраном смерті (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(Див.

На наступному етапі вибору компонент до установки ( Select the features you want to install) відзначаємо тільки те, що нам потрібно - Debugging tools для Windowsта натискаємо Install

У вказану на першому екрані папку з Інтернету буде завантажено та встановлено набір утиліт.

Після закінчення установки знаходимо в меню "Пуск" або на стартовому екраніу групі ярликів Windows Kitsутиліту WinDbgі запускаємо її з правами адміністратора

Якщо з якоїсь причини ярлик знайти не вдалося, то можна запустити файл, що виконується з каталогу установки - З:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\windbg.exe

У головному меню програми WinDbgвибираємо пункти File > Symbol File Path. У вікно, що відкрилося, вставляємо рядок визначальний нехай до локального каталогу символьного кеша та його онлайн-джерелу:

SRV*C:\Windows\symbol_cache*http://msdl.microsoft.com/download/symbols

Зберігаємо налаштування, вибравши в головному меню пункти File > Save Workspace

Відкриваємо файл дампа пам'яті, вибравши меню File > Open Crash Dump...

Вибираємо файл MEMORY.DMP(за замовчуванням розташований у каталозі C:\Windows) і натискаємо Open

З'явиться інформація про те, який саме виконуваний модуль спричинив зупинення роботи системи. Клацнувши за посиланням !analyze-vможна отримати більш розгорнуту інформацію про стан системи на момент виникнення стоп-помилки.

Ту ж саму інформацію можна отримати і за допомогою командного рядкавикористовуючи приблизно наступну послідовність команд:

cd /d " C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\" kd -z "D:\DOWNLOADS\VM05\MEMORY.DMP " .logopen C:\Debuglog.txt .sympath srv*C:\Windows\symbol_cache*http://msdl.microsoft.com/download/symbols

У цьому прикладі вся інформація про розбір дампи буде вивантажена в читаному виглядіу файл C:\Debuglog.txt

Джерела інформації:

Однією з найпоширеніших відмов роботи Windows— системні винятки, які бачить користувач у вигляді «синього екрану смерті» (BSOD). Як правило, ця фатальна помилка виникає або через несправність драйверів, обладнання (частіше під час завантаження ОС) або через дію вірусів та антивірусів.

На синьому екрані смерті міститься інформація про причини, що спричинили виняток (у вигляді коду STOP-помилки виду 0x0000007b), адреси в пам'яті, при зверненні до яких стався виняток та інша корисна інформація. Така інформація називається STOP-помилкою, змінними параметрами якої є адреси пам'яті. Іноді там міститься ім'я файлу, що викликав виняток.

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

Що таке дамп

  • dump (англ.) - купа сміття; звалище; дірка; нетрі.
  • dump (memory dump) – 1) дамп, виведення вмісту оперативної пам'яті на друк чи екран; 2) "знімок" оперативної пам'яті; дані, що отримуються в результаті дампінгу; 3) аварійне зняття, вимкнення, скидання.
  • dumping - дампінг, зняття дампи.

Параметри збереження дампи пам'яті зберігаються в реєстрі Windows.

Інформація про дамп пам'яті в системному Реєстрі:

В розділі Реєстру Windowsаварійний дамп пам'яті визначається такими параметрами:

– REG_DWORD-параметр AutoReboot зі значенням 0×1 (опція Виконати автоматичне перезавантаження допоміжного вікна Завантаження та відновлення діалогового вікна Властивості системи);

– REG_DWORD-параметр CrashDumpEnabled зі значенням 0×0, якщо дамп пам'яті не створюється; 0×1 - Повний дамп пам'яті; 0×2 – Дамп пам'яті ядра; 0×3 - Мінімальний дамп пам'яті (64КБ);

– REG_EXPAND_SZ-параметр DumpFile із значенням за промовчанням %SystemRoot%\MEMORY.DMP (місце зберігання файлу дампа);

– REG_DWORD-параметр LogEvent зі значенням за умовчанням 0×1 (опція Записати подію до системного журналу вікна Завантаження та відновлення);

– REG_EXPAND_SZ-параметр MinidumpDir зі значенням за замовчуванням %SystemRoot%\Minidump (опція Папка малого дампа вікна Завантаження та відновлення);

– REG_DWORD-параметр Overwrite зі значенням за замовчуванням 0×1 (опція Замінювати існуючий файл дампа вікна Завантаження та відновлення);

– REG_DWORD-параметр SendAlert зі значенням за замовчуванням 0×1 (опція Надіслати адміністративне сповіщення вікна Завантаження та відновлення).

Як система створює файл аварійного дампа пам'яті

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

Після збою ядро ​​системи перевіряє цілісність карти сторінкового файлу, дискового драйвера та структур дискового драйвера, що управляють. Якщо цілісність цих структур не порушено, то ядро ​​системи викликає спеціальні функціївведення/виведення дискового драйвера, призначені для збереження образу пам'яті після системного збою. Ці функції вводу/виводу самодостатні і не покладаються на служби ядра системи, оскільки в програмах, що відповідають за запис аварійного дампа, не можна робити жодних припущень про те, які частини ядра системи або драйвери пристроїв були пошкоджені. Ядро системи записує дані з пам'яті по карті секторів файлу підкачки (при цьому не доводиться використовувати драйвери файлової системи).

Спочатку ядро ​​системи перевіряє стан кожного компонента, задіяного у процесі збереження дампа. Це робиться для того, щоб під час прямого запису в сектори диска не пошкодити дані, що лежать поза сторінковим файлом. Розмір сторінки файлу повинен бути на 1МБ більше розміру фізичної пам'яті, тому що при записі інформації в дамп створюється заголовок, в якому містяться сигнатура аварійного дампа і значення декількох найважливіших змінних ядра системи. Заголовок займає менше 1МБ, але операційна система може збільшувати (або зменшувати) розмір файлу підкачки не менше ніж на 1МБ.

Після завантаження системи Session Manager (Диспетчер сеансу Windows NT; дискова адреса - \WINDOWS\system32\smss.exe) ініціалізує сторінкові файли системи, використовуючи для створення кожного файлу власну функцію NtCreatePagingFile. NtCreatePagingFile визначає, чи існує сторінки, що ініціалізується, і якщо так, то є в ньому заголовок дампа. Якщо заголовок є, то NtCreatePagingFile надсилає до Session Manager спеціальний код. Після цього Session Manager запускає процес Winlogon (Програма входу в систему Windows NT; дискова адреса - WINDOWSsystem32winlogon.exe), який сповіщається про існування аварійного дампа. Winlogon запускає програму SaveDump (Програма збереження копії пам'яті Windows NT; дискова адреса - WINDOWSsystem32savedump.exe), яка аналізує заголовок дампа і визначає подальші дії в аварійній ситуації.

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

Зберігши файл дампа, програма SaveDump робить запис про створення аварійного дампа в журналі подій Система, наприклад: Комп'ютер був перезавантажений після критичної помилки: 0x100000d1 (0xc84d90a6, 0×00000010, 0×00000000 Копію пам'яті збережено: C:\WINDOWS\Minidump\Mini060309-01.dmp».

Якщо увімкнено опцію Надіслати адміністративне сповіщення, SaveDump відправляє оповіщення адміністратору.

Різновиди дампів

  • Повний дамп пам'ятізаписує весь вміст системної пам'ятіу разі виникнення непереборної помилки. Для цього варіанта необхідно мати на завантажувальному томі файл підкачування, розмір якого дорівнює обсягу всієї фізичної оперативної пам'яті плюс 1МБ. За замовчуванням повний дамп пам'яті записується у файл %SystemRoot%\Memory.dmp. У разі виникнення нової помилки та створення нового файлу повного дампа пам'яті (або дампа пам'яті ядра) попередній файл замінюється (перезаписується). Параметр Повний дамп пам'яті недоступний на ПК, на яких встановлена ​​32-бітна операційна система та 2 або більше гігабайт оперативної пам'яті.

У разі виникнення нової помилки та створення нового файлу повного дампа пам'яті попередній файл замінюється.

  • Дамп пам'яті ядразаписує лише пам'ять ядра, завдяки чому процес запису даних у журнал при раптовій зупинці системи протікає швидше. Залежно від обсягу фізичної пам'яті ПК у разі для файла подкачки потрібно від 50 до 800МБ чи третина фізичної пам'яті комп'ютера на завантажувальному томі. За замовчуванням дамп пам'яті ядра записується у файл %SystemRoot%\Memory.dmp.

Цей дамп не включає нерозподілену пам'ять або пам'ять, виділену для програм режиму користувача. Він включає лише пам'ять, виділену для ядра та апаратно-залежного рівня (HAL) у Windows 2000 та пізніших версіях системи, а також пам'ять, виділену для драйверів режиму ядра та інших програм режиму ядра. У більшості випадків такий дамп є найкращим варіантом. Він займає набагато менше місця в порівнянні з повним дампом пам'яті, при цьому виключаючи лише ті сектори пам'яті, які, швидше за все, не пов'язані з помилкою.
У разі виникнення нової помилки та створення нового файлу дампа пам'яті ядра попередній файл замінюється.

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

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

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

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

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

Операційна система Windows XP, безперечно, значно надійніше попередніх версій, – завдяки зусиллям як розробників Microsoft, так і розробників драйверів апаратного забезпечення, так і розробників прикладного програмного забезпечення. Однак аварійні ситуації – всілякі збої та крахи системи – неминучі, і від того, чи володіє користувач ПК знаннями та навичками у їх усуненні, залежить, доведеться йому витратити кілька хвилин на пошук та усунення несправності (наприклад, на оновлення/налагодження драйвера або переустановку прикладної) програми, що викликає системний збій), – або кілька годин на перевстановлення/налаштування операційної системи та прикладного програмного забезпечення (що не гарантує відсутності збоїв та крахів надалі!).

Багато системні адміністраторивсе ще нехтують аналізом аварійних дампів Windows, вважаючи, що працювати з ними дуже важко. Важко, але можна: навіть якщо, наприклад, аналіз одного дампа з десяти виявиться успішним, – зусилля, витрачені на освоєння найпростіших прийомів аналізу аварійних дампів, будуть недаремними!

Наведу приклади зі своєї сисадмінської практики.

У локальної мережібез видимої причини("залізо" в порядку, відсутність вірусів гарантовано, користувачі - з "нормальними руками") "полягли" кілька робочих станцій з Windows XP SP1/SP2 "на борту". Комп'ютери завантажити в нормальному режимі не вдавалося, – доходило до «Вітання» – і на перезавантаження до нескінченності. При цьому в Безпечному режимі ПК завантажувалися.

Вивчення дампів пам'яті дозволило виявити причину несправності: винуватцем виявився антивірус Касперського, точніше, нові антивірусні бази (якщо ще точніше, то два модулі баз - base372c.avc, base032c.avc).

…Ще був такий випадок. На локальному ПК з Windows XP SP3 під час спроби відкрити відеофайли форматів.avi та.mpeg відбувалося перезавантаження. Вивчення дампа пам'яті дозволило виявити причину несправності - nv4_disp.dll файл драйвера відеокарти NVIDIA GeForce 6600. Після оновлення драйвера несправність була усунена. Взагалі, драйвер nv4_disp.dll - один із найнестабільніших драйверів, який часто приводив до BSOD.

В обох зазначених випадках вивчення аварійного дампа пам'яті дозволило до мінімуму (кілька хвилин!) звести час для діагностування та усунення несправності.

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

Для аналізу аварійних дампів пам'яті існує багато програм, наприклад, DumpChk, Kanalyze, WinDbg.

Розглянемо аналіз аварійних дампів пам'яті з допомогою програми WinDbg (входить до складу Debugging Tools for Windows).

Встановлення засобів налагодження

  • відвідайте веб-сайт http://www.microsoft.com/whdc/devtools/debugging/default.mspx корпорації Microsoft;
  • завантажте Debugging Tools for Windows, наприклад, для 32-бітної версії Windows це можна зробити на сторінці Download the Debugging Tools for Windows ;
  • після скачування запустіть інсталяційний файл;
  • у вікні Debugging Tools for Windows Setup Wizard натисніть Next;
  • у вікні з ліцензійною угодоювстановіть перемикач I agree -> Next;
  • у наступному вікні виберіть тип установки (за замовчуванням засоби налагодження встановлюються в папку \Program Files\Debugging Tools for Windows) -> Next -> Install -> Finish;
  • для інтерпретації файлів дампа пам'яті необхідно також завантажити пакет символів (Symbol Packages, так звані символьні файли, або файли символів налагодження) для своєї версії Windows, – зайдіть на сторінку Download Windows Symbol Packages;
  • виберіть свою версію Windows, скачайте та запустіть інсталяційний файл Symbol Packages;
  • у вікні ліцензійної угоди натисніть Yes;
  • у наступному вікні виберіть папку для встановлення (за замовчуванням пропонується \WINDOWS\Symbols) -> OK -> Так;
  • у вікні Microsoft Windows Symbols з повідомленням "Installation is complete" натисніть OK.

Використання програми WinDbg для аналізу аварійних дампів пам'яті

  • запустіть WinDbg (за замовчуванням встановлюється в папку \Program Files\Debugging Tools for Windows);
  • виберіть меню File -> Symbol File Path ...;
  • у вікні Symbol Search Path натисніть кнопку Browse…;
  • у вікні Огляд папок вкажіть розташування папки Symbols (за замовчуванням - \WINDOWS\Symbols) -> OK -> OK;
  • виберіть меню File -> Open Crash Dump ... (або натисніть Ctrl + D);
  • у вікні Open Crash Dump вкажіть розташування Crash Dump File (*.dmp) –> Відкрити;
  • у вікні Workspace з питанням «Save information for workspace?», встановіть прапорець Don't ask again –> No;
  • у вікні WinDbg відкриється вікно Command Dump<путь_и_имя_файла_дампа>з аналізом дампи;
  • Перегляньте аналіз дампа пам'яті;
  • у розділі «Bugcheck Analysis» буде вказано можлива причинакраху, наприклад, "Probably caused by: smwdm.sys (smwdm+454d5)";
  • для перегляду детальної інформаціїнатисніть посилання «!analyze -v» у рядку «Use !analyze -v to get detailed debugging information»;
  • закрийте WinDbg;
  • використовуйте отриману інформацію, щоб усунути причину несправності.

Наприклад, на наступному скріншоті причиною несправності є файл nv4_disp.dll драйвера відеокарти.