Сообщения Windows 2000 и отладчик
Установка, настройка и администрирование
🕛 30.10.2006, 16:42
Поговорим о грустном... чтобы, столкнувшись с неприятной неожиданностью - "синим экраном смерти", вы не погрустнели вдвойне. Возможно, вы уже достаточно хорошо знакомы с Windows 2000, но во время работы еще не попадали в такую ситуацию. Хотя эта система и надежнее предыдущих версий Windows NT, это не значит, что "синий экран смерти" - следствие серьезных ошибок - не возникнет никогда. Если даже такие ошибки и не появятся, вы все равно должны быть готовы устранить их!"Синий экран" и Windows 2000
Итак, "синий экран" можно увидеть и в Windows 2000. Когда система выявляет серьезную ошибку, которую не может устранить самостоятельно, она, в зависимости от типа ошибки, генерирует соответствующие системные сообщения, которые и известны под собирательным названием "синий экран". В этом разделе мы рассмотрим основные причины возникновения таких ошибок в Windows 2000 и классифицируем их по типам.
Как и в Windows NT, исполняющая подсистема Windows 2000 (модуль Executive) представляет собой часть операционной системы, работающую в режиме ядра. Режим ядра (kernel mode) - это привилегированный режим работы процессора, в котором поток (thread) имеет доступ к системной памяти и к аппаратным средствам. Режимом пользователя (user mode) называется непривилегированный режим работы процессора, выполняясь в котором поток не имеет прямого доступа к системной памяти и аппаратным средствам, для получения такого доступа он должен обратиться к сервисам операционной системы. Модуль Executive обеспечивает структуру процессов, диспетчеризацию потоков, межпроцессную коммуникацию, управление памятью, управление объектами, безопасность и защиту объектов, обработку прерываний и ввод/вывод.
Ядро Windows NT/2000 представляет собой часть модуля Executive, управляющую процессором. Ядро выполняет диспетчеризацию потоков, обработку исключении и прерываний, а также мультипроцессорную синхронизацию. Кроме того ядро, ядро поставляет модулю Executive объекты-примитивы, из которых он создает объекты режима пользователя.
Итак, существуют два типа системных сообщений Windows 2000:
Сообщения;STOP. Генерируются в символьном режиме и появляются, когда ядро Windows 2000 выявит противоречивое состояние, из которого оно не способно выйти самостоятельно.
Сообщения о неисправности аппаратуры (Hardware malfunction messages). Как и сообщения STOP, эти сообщения также генерируются в символьном режиме. Их появление указывает на то, что система обнаружила аппаратную ошибку, после которой продолжение работы невозможно.
Практически для каждой ситуации, делающей невозможным продолжение работы системе Windows 2000 предусмотрены соответствующие сообщения. Как правило, для диагностики сообщений Windows 2000 и устранения причин, вызвавших их появление большинству пользователей требуется техническая поддержка. Однако системный администратор должен иметь навыки устранения последствий аппаратных сбоев и уметь интерпретировать сообщения STOP.
Экран сообщения STOP
Как уже говорилось, сообщения STOP появляются, когда ядро Windows 2000 выявляет противоречивое состояние, из которого оно не может выйти самостоятельно. Такие сообщения всегда, отображаются в полноэкранном текстовом режиме, а не в окне Windows (рис. 15.11)- Каждое такое сообщение уникальным образом определяется шестнадцатеричным числом и символьной строкой, идентифицирующими возникшую ошибку. Кроме того, за шестнадцатеричным числом, идентифицирующим сообщение STOP, как правило, следуют заключенные в круглые скобки шестнадцатеричные числа, каждое из которых указывает один из параметров возникшей ошибки! Число таких параметров может достигать четырех, как показано в примере:
**** STOP: ОХ0000001E (OxCOOOOOOS, OxEFE38AF9, 0x00000001, Ох7Е8ВОЕВ4) KMODE_EXCEPTtON_NOT_HANDLED * * *
По символьной строке, идентифицирующей ошибку, можно предположительно определить, какой из компонентов системы был затронут ошибкой,после которой ядро не смогло восстановиться. Тем не менее, возможно, причина ошибки кроется в другом компоненте системы.
Составные части сообщения STOP
В отличие от предыдущих версий Windows NT, где экран сообщения STOP состоит из пяти основных частей, экран сообщения STOP в Windows 2000 содержит только три части:
Информация кода ошибки (bugcheck information)
Рекомендации пользователю (recommended user action)
Информация отладочного порта (debug port information)
При появлении сообщения STOP рекомендуется в первую очередь ознакомиться с информацией кода ошибки, помогающей ее устранить. Одно из важных нововведений в Windows 2000 - теперь сообщения STOP включают рекомендации пользователю по устранению ошибок. Наконец, третья часть экрана сообщения STOP содержит информацию о сохранении отладочного дампа памяти, который впоследствии может быть использован отладчиком ядра.
Информация кода ошибки
Первый раздел экрана сообщения STOP называется разделом информации кода ошибки (bugcheck information section). Он содержит код ошибки STOP (STOP code), за которым может следовать до четырех заключенных в скобки параметров, определенных разработчиком, а также символьное имя ошибки.
На рис. 15.1 показан экран с кодом ошибки 0x000000IE (символьное имя KMODE_EXCEPTION_NOT_HANDLED).
Часто (но не всегда) в разделе информации кода ошибки содержится строка указывающая адрес памяти, по которому возникла проблема (в шестнадцатеричном формате), а также имя драйвера или устройства, явившегося причиной ошибки. Эта, информация появляется или не появляется в зависимости от типа возникшей проблемы.
Примечание
Иногда ядро Windowr 2000 отображает только первую строку сообщения STOP Это происходит в случаях, когда возникшая ошибка повлияла даже на системные сервисы, ответственные за вывод сообщения STOP.
Рекомендации пользователю
Этот раздел "синего экрана", следующий за информацией кода ошибки содержит рекомендации, следуя которым, пользователь может устранить возникшую проблему. В ряде случаев проблема может бить устранена простой перезагрузкой. Однако если "синий экран смерти" появляется постоянно то, скорее всего, вам придется проводить восстановительные работы (см. главу 8.)
Информация отладочного порта
Наконец, последний раздел сообщения STOP - это раздел информации отладочного порта (debug port information). В этом разделе содержится информация о коммуникационных параметрах (СОМ-порт и скорость передачи данных на компьютер, с которого будет производиться отладка) Эта информация выводится, если в системе активизирован отладчик ядра (kernel debugger). Помимо этого, в данном разделе приводится информация о сохранении файла дампа памяти (если эта функция активизирована).
Подготовка к устранению проблем
Прежде чем приступать к классификации ошибок STOP и обсуждению методов их устранения, необходимо обсудить подготовительные шаги которые помогут ускорить восстановление системы в том случае, если вы все же столкнетесь с проблемой "синего экрана".
Причиной возникновения многих ошибок STOP может быть перезапись системного файла или некорректно работающий драйвер. При этом как правило, ничего не подозревающий пользователь сам создает проблему устанавливая программное обеспечение или драйверы, не совместимые с операционной системой Эта проблема существовала во всех предыдущих версиях Windows NT. В Windows 2000 введены дополнительные средства защиты системных файлов и драйверов с помощью цифровой подписи,которая гарантирует их совместимость и корректную работу в Windows 2000.-Во избежание возникновения проблем рекомендуется Пользоваться этими средствами, подробно описанными в главе 8. Так вы существенно снизите риск появления ошибок STOP.
Если даже вы сами никогда не будете выяснять причину возникновения ошибки - предположим, за вас это сделает специалист службы технической поддержки, - рекомендуется хотя бы сконфигурировать систему так, чтобы облегчить ему эту задачу. Вызовите утилиту Система (System) на панели управления, в раскрывшемся диалоговом окне Свойства системы (System Properties) перейдите на вкладку Дополнительно (Advanced) и нажмите кнопку Загрузка и восстановление (Startup and Recovery). На экране появится окно Загрузка и восстановление
Группа Загрузка операционной системы (System startup), расположенная в верхней части окна, позволяет задать операционную систему, загружаемую по умолчанию (в случае, когда на компьютере установлено несколько операционных систем), и временной интервал, в течение которого на экране будет отображаться меню загрузки.
Группа, которая интересует нас в данном случае - Отказ системы (System Failure). Она позволяет определить поведение системы в случае возникновения ошибок STOP. Рассмотрим ее опции более подробно. Системный журнал событий Windows 2000 - хороший источник информации, помогающей выяснить причину возникновения ошибки. Именно поэтому в любом случае рекомендуется установить флажок Записать событие в системный журнал (Write an event to the system log) - тогда при каждом возникновении ошибки STOP в системном журнале событий будет делаться соответствующая запись. Пример такой записи приведен ниже:
Event ID: :1001 Source: Save Dump Description: The computer has rebooted from a bugcheck. The bugcheck was : 0xc000021a (0xel270188, 0x00000001, ,0x00000000, 0x00000000). Microsoft Windows NT (v15.1381). A dump was saved in: C:\WINNT\MEMORY.DMP.
Если установить флажок Отправить административное оповещение (Send an administrative alert), то в случае возникновения ошибки STOP на компьютер сетевого администратора будет отправляться административное уведомление.Наконец, если компьютер, на котором происходит такая ошибка, необходимо как можно скорее привести в рабочее состояние, возможно, вы захотите, чтобы он автоматически перезагружался в случае возникновения ошибок STOP. Для этого установите флажок Выполнить автоматическую перезагрузку (Automatically reboot).
Если ошибки, приводящие к появлению "синего экрана", появляются систематически, то наилучшим источником информации о причине их возникновения будет отладочный дамп. Для конфигурирования системы таким образом, чтобы при ее крахе содержимое физической памяти записывалось в файл на жестком диске, используются опции группы Запись отладочной информации (Write Debugging Information). Поле Файл дампа памяти (Dump File) предназначено для ввода имени файла, в который будет сбрасываться эта информация, а установленный флажок Затирать существующий файл (Overwrite any existing file) определяет, что содержимое существующего файла дампа каждый раз будет замещаться новой информацией. Эти опции используются так же, как и в предыдущих версиях Windows NT.
Однако Windows 2000 предлагает и усовершенствование по сравнению с Windows NT 4.0 при сохранении отладочного дампа. Если у вас есть опыт работы с предыдущими версиями Windows NT, вы наверняка помните, что в Windows NT 4.0 в отладочный дамп можно было записать только содержимое физической памяти компьютера. Объем файла, который при этом генерирует система, всегда несколько больше, нежели объем физической памяти, установленной на компьютере, и при этом значительная часть данных в файле дампа практически бесполезна. Как в Windows NT 4.0, так и в Windows 2000 ошибки STOP представляют собой ошибки ядра. Следовательно, именно информация ядра (состояние системы на момент возникновения ошибки, сведения об активных приложениях, загруженных драйверах устройств и т. д.) и представляет практический интерес при анализе дампа. Данные о режиме пользователя обычно просто увеличивают размер файла дампа и не предоставляют полезной информации.
Именно поэтому в Windows 2000 в диалоговом окне Загрузка и восстановление появилась новая опция, позволяющая регулировать размер файла аварийного дампа. Первый список в группе Запись отладочной информации позволяет выбрать режим сохранения дампа. Наряду с возможностью сохранения полного дампа (как в Windows NT 4.0) в нем есть опция Дамп памяти ядра (Kernel Memory Dump)^ при выборе которой в файле дампа будет сохранена только информация ядра. Средства анализа аварийного дампа; совместимые с Windows 2000, в том числе dumpexam и WinDbg, будут интерпретировать этот файл корректно. Экономия дискового пространства, которой можно добиться, выбрав эту опцию, может отличаться в разных системах (и даже зависеть от типа возникающих ошибок). Тем не менее, на основании практического опыта авторов можно сказать, что на компьютерах с объемом оперативной памяти 128 Мбайт полный дамп составит чуть более 128 Мбайт, а дамп ядра - около 40 Мбайт.