Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

01.02.2011 11:40 | Dazila

Мои последние публикации в блоге были посвящены "эстетической" стороне "синых экранов смерти" - в них я рассказывал, как настроить цвета BSoD. Надежность кода режима ядра Windows становится лучше с каждым релизом, так что многие из вас никогда не столкнутся с BSoD. Но если вы все же увидели его (речь идет не о BSoD, который вы вызвали с помощью утилиты Notmyfault), то несколько минут, потраченные на то, чтобы найти его причину, могут спасти вас от неудобств и возможной потери данных, которая может произойти при повторном сбое системы. В этой статье я, для начала, рассмотрю основы анализа аварийного дампа. Во многих случаях этот простой анализ приведет вас к некорректному драйверу, для которого есть новая версия, доступная в сети, но иногда результаты этого анализа неоднозначны. В качестве примера я использую случай с двумя администраторами, которые сообщили мне, что поиск в Сети по правильным ключевым словам привел их к решению проблемы.

Отладка сбоя начинается со скачивания пакета Debugging Tools for Windows (это часть Windows SDK - заметьте, что вы можете провести веб-установку только Debugging Tools, вместо того, чтобы загружать и устанавливать весь SDK), его установки и настройки, которая заключается в указании сервера символов Microsoft, чтобы отладчик мог загрузить символы для ядра, которые нужны для интерпретации информации из дампа. Вы можете сделать это, открыв диалоговое окно настройки символов из меню File и введя URL сервера символов вместе именем папки в вашей системе, куда отладчик будет кэшировать скачиваемые им файлы символов:


Следующим шагом является загрузка аварийного дампа в отладчик с помощью команды Open Crash Dump меню File. Место хранения системой файлов дампа зависит от того, какую версию Windows вы используете, и является ли она серверной или клиентской. Есть простое правильно, которое поможет вам найти файл дампа, согласно которому первое, что вам следует сделать, это проверить файл с именем Memory.dmp в папке SystemRoot (обычно C:\Windows); если вы не нашли его, посмотрите в папку %SystemRoot%\Minidumps и загрузите новейшие файлы минидампа (предполагается, что вы хотите отладить последний сбой системы).

Когда вы загрузите файл дампа в отладчик, он использует эвристику, что попытаться определить причину сбоя системы. Он укажет вам на возможную причину, отобразив строку "Probably caused by:" с именем драйвера, компонента Windows или типа аппаратной ошибки. Вот пример, который правильно идентифицирует проблемный драйвер, ставший причиной сбоя, myfault.sys:


В моих презентациях я часто показываю вам, что нажатие на гиперссылку !analyze -v предоставит вам больше информации, включая стек ядра потока, который выполнялся, когда произошел сбой. Это часто бывает полезно, когда эвристика не может точно определить причину, поскольку вы можете увидеть ссылку на сторонний драйвер, который, будучи активным во время сбоя, может оказаться его причиной. Проверка на наличие новой версии сторонних драйверов, обнаруженных во время этого базового анализа, часто решает проблему. Я описал случай, который был решен с помощью этого шаблона анализа в моей предыдущей статье, Дело о прервавшемся телефонном звонке.

Если вы не нашли никаких подсказок, попробуйте выполнить поиск в Сети по текстовому описанию кода сбоя (его можно получить с помощью команды !analyze -v) и любых ключевых слов, которые описывают машину или программное обеспечение. Например, один администратор столкнулся с периодическими сбоями в работе серверной фермы Citrix. Он не знал, что мог посмотреть файл аварийного дампа, пока не посмотрел презентацию из серии "Case of the Unexplained". После того, как он вернулся в свой офис с конференции, он открыл дампы с нескольких проблемных систем. Анализ дампов привел к тому самому классическому выводу для большинства случаев сбоя, что драйвер не освободил память ядра, связанную с удаленными пользовательскими сеансами, когда это было необходимо:


В надежде, что поиск в Сети может дать ему подсказку, он ввел "session_has_valid_pool_on_exit and citrix" в поисковую строку браузера. К его изумлению, самая первая ссылка вела на страницу базы знаний Citrix с описанием решения именно этой проблемы, и в той статье даже был скриншот точно такого же окна отладчика с результатами анализа, которые он видел на своей системе:


После загрузки и установки исправления ферма серверов стала работать нормально.

В другом примере администратор столкнулся с тремя сбоями сервера на протяжении нескольких дней. К сожалению, анализ не указал на решение, а просто сообщил, что сбой, вероятно, связан с тем, что некий таймер не работал на протяжение ограниченного промежутка времени:


Как и в предыдущем случае, администратор ввел текст сбоя в поисковую строку и, к его облегчению, самая первая ссылка результатов поиска вела к описанию решения этой проблемы:


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

Эти случаи показывают нам, что диагностика проблем заключается в нахождении подсказок, которые приводят вас к решению проблемы, и эти подсказки могут стать очевидными, если приложить для их нахождения немного усилий и чуточку креативности. В конце концов, не важно, как и где вы найдете эти подсказки, если в итоге вы решите вашу проблему.


Источник: http://blogs.technet.com/mark_russinovich
Перевод: Dazila

Комментарии

Не в сети

Это была реклама адекватной выдачи поисковиков (см. Bing)

01.02.11 12:17
0
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.109 секунд (Общее время SQL: 0.093 секунд - SQL запросов: 55 - Среднее время SQL: 0.00169 секунд))
Top.Mail.Ru