Что делать если получили BSOD? Способ ковыряния в дампе Windows
13:12, 9 ферваля 2006
(
Microsoft Administration
)
Эпиграф Звонок по телефону: Ну вот случилось у нас, к примеру, несчастье. Нехороший windows вывалился в BSOD - blue screen of death. Что? Почему? Как это? Самый трезывый из этих вопрос: из-за чего? Видим, к примеру, строку PAGE_FAULT_IN_NONPAGED_AREA, что нам с ней дальше делать? А какой это драйвер глюканул? А может и не драйвер вовсе?
Мелкософт для анализа подобных ситуаций предоставляет инструмент для отладки: WinDbg, который у них и доступен для бесплатного скачивания около 13,8Мб. Тут надо оговориться, что для полного счастья этому дебаггеру не будет хватать библиотек виндовых symbols (который на самом-то деле и весит примерно 130Мб). По умолчанию нехороший виндовс делает два дампа: большой, и маленький. Большой дамп содержит всю используемую в момент ошибки память и находится в корне системы, это MEMORY.DMP, маленький дамп тоже подходит для анализа, и обнаружить все выпущенные системой минидампы можно в c:\windows\minidump\, типичное имя файла - Mini011106-14.dmp, дата, номер. Открываем в windbg из меню как показано на скриншоте. Рекомендую скачать символьную базу для x86 XP, 2003 архитектур и подключить в бебаггере указав правильные пути. В командной строке дебаггера запускаем команду !analyze -v и получаем еще более детальный отчет, который я и привожу ниже. В частности из анализа этого дампа можно сделать вывод о том, что ошибка возникла на системном уровне, вследствие переполнения стека. Виновником является что-то низкоуровневое. Способ побороть - писать в Microsoft и ждать хотфикс. (Как выяснилось по моей проблеме непроизвольный перезагрузки терминальных серверов есть как раз нужный хотфикс, который простым варезным смертным вроде меня недоступен). --------------------------------------------- Microsoft (R) Windows Debugger Version 6.6.0003.5
Symbol search path is: C:\WINDOWS\Symbols Use !analyze -v to get detailed debugging information. BugCheck 50, {fdffa9f8, 0, 8089b522, 0} Probably caused by : ntkrnlmp.exe ( nt!ExFreePoolWithTag+28b ) Followup: MachineOwner 0: kd> !analyze -v PAGE_FAULT_IN_NONPAGED_AREA (50) Debugging Details:
FAULTING_IP: MM_INTERNAL_CODE: 0 DEFAULT_BUCKET_ID: INTEL_CPU_MICROCODE_ZERO BUGCHECK_STR: 0x50 CURRENT_IRQL: 1 LAST_CONTROL_TRANSFER: from 808689ee to 8087b6be STACK_TEXT:
FOLLOWUP_IP: FAULTING_SOURCE_CODE:
FOLLOWUP_NAME: MachineOwner SYMBOL_NAME: nt!ExFreePoolWithTag+28b MODULE_NAME: nt IMAGE_NAME: ntkrnlmp.exe DEBUG_FLR_IMAGE_TIMESTAMP: 42435e60 FAILURE_BUCKET_ID: 0x50_nt!ExFreePoolWithTag+28b BUCKET_ID: 0x50_nt!ExFreePoolWithTag+28b Followup: MachineOwner
Оставить комментарий |
© Максим Прокопов 2005-2024 | О сервере |