В обход синего экрана смерти

Саныч

Опытный участник
Сообщения
734
Реакции
741
Когда в Windows Vista происходит критическая системная ошибка, обычно трудно бывает извлечь много информации из появившегося "синего экрана смерти" (BSOD). Обычно сразу возникает страшная мысль о том, что всё пропало. Не волнуйтесь: не нужно в суматохе пытаться списать всю информацию с синего экрана смерти, прежде чем Vista автоматически перезагрузится и всё исчезнет; есть другой способ. Vista записывает специальный файл под названием minidump, в котором потом можно будет посмотреть, что к чему.

По умолчанию Windows сохраняет только часть дампа памяти, когда Vista "умирает". Вместо того чтобы пытаться в спешке списать информацию с синего крана смерти, прежде чем она исчезнет при автоматической перезагрузке системы (что тоже в Vista происходит по умолчанию), загляните в файл minidump, который записывается автоматически. Такие файлы находятся в каталоге %systemroot%\Minidump (C:\Windows\Minidump) и идентифицируются по дате и времени; если уж и списывать что-то с синего экрана смерти, так это дату и время.

Есть одна загвоздка: для чтения дампа памяти, включая minidump, вам потребуется программа-отладчик Windows Debugger также известная под названием windbg.exe (информацию о её скачивании, установке и использовании можно найти здесь. Вы должны скачать и установить 32-битную или 64-битную версию отладчика Debugger, соответствующую вашей версии Vista. После её установки нужно устранить потенциальные проблемы, добавив URL в строке отладчика Symbol File Path. Запустите отладчик, нажав на кнопку "Start" и введя в строку поиска windbg. Затем выберите File - Symbol File Path и введите следующую строку

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


Чтобы открыть файл minidump, выберите в программе File / Open Crash Dump..., а затем найдите папку Minidump внутри %systemroot%. Выберите пункт "Details" в меню "Views" окна "Open" (Виды/Таблица), там вы найдёте информацию о дате и времени, которая вам понадобится для того, чтобы открыть интересующий вас дамп памяти. Прежде чем изучать дамп памяти, вам необходимо дождаться, когда отладочная информация будет загружена. Для получения нужной информации мы обычно используем следующую командную строку: !analyze -v;r;kv;lmtn

Ниже показан скриншот одного из дампов памяти.



Обычно кода ошибки - в данном случае: CLOCK_WATCHDOG_TIMEOUT (101) -бывает достаточно для того, чтобы понять, в чём дело, и найти возможное решение. Поискав в Google, мы нашли, что причиной возникновения такой ошибки является разогнанный процессор, который не может достаточно быстро обрабатывать прерывания. Мы понизили частоту нашего 3,0-ГГц процессора QX9650 с 3,5 ГГц до 3,2 ГГц. Проблема решилась.

Не все BSOD так легко исправить, однако поиск информации об ошибке по её названию или коду в виде строки 0x00000101 (здесь должно быть восемь цифр после x) могут привести вас к решению проблемы. Если ошибка произойдёт снова, зайдите в меню "Пуск/Start", "Панель управления/Control Panel" (Классический вид/Classic View), "Система/System", "Дополнительные параметры системы/Advanced System Settings", "Параметры/Settings" в разделе "Загрузка и восстановление" и выберите "Дамп памяти ядра/Kernel memory dump" в меню "Запись отладочной информации/Write debugging information". В этом случае Vista запишет более подробный дамп памяти, который может пригодиться, если вы обратитесь за профессиональной помощью. Эта информация записывается в файл MEMORY.DMP в %systemroot%, так что вам нужно будет правильно указать дамп памяти в Windbg, когда вы будете искать решение проблемы.




Источник
 
Назад
Сверху Снизу