Файл: Руссинович М., Маргозис А. Утилиты Sysinternals. Справочник администратора 2012.pdf

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 33062

Скачиваний: 742

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Утилиты для работы с процессами и диагностики 

Глава 7  247 

установить флажок Wrap (Перенос). Если этот параметр включен, за-
пись будет вестись в начало файла.
Если флажок Append (Добавлять) не установлен, и целевой файл уже 

существует, DebugView очистит этот файл, когда начнет запись в него. Если 
флажок установлен, новые данные будут добавляться в конец файла.

Если мониторинг выходных данных отладки выполняется с нескольких 

удаленных компьютеров, и включена запись в файл, все выходные данные 
записываются в один файл. Фрагменты данных от разных компьютеров раз-
деляются заголовком, указывающим имя компьютера, от которого получе-
ны последующие записи.

Параметры записи в журнал можно контролировать также с помощью 

параметров командной строки (табл. 7-2).

Табл. 7-2.  Параметры командной строки для записи в журнал

Параметр

Описание

-l файл_журнала

Записывает выходные данные в указанный файл

-m n

Ограничивает размер файла журнала до МБ

-p

Добавляет записи в конец файла, если он существует

-w

Используется вместе с –m; выполняет переход в начало файла 
при достижении максимального размера

-n

Создает новый файл журнала каждый день, указывая 
текущую дату в имени файла

-x

Используется вместе с –n; очищает экран при создании 
нового файла журнала

Печать
Чтобы распечатать содержимое экрана на принтере, выберите в меню File 
(Файл)
 команду Print (Печать) или Print Range (Печать диапазона)
Первая команда выводит на печать все записи выходных данных, вторая — 
только записи с порядковыми номерами из указанного диапазона. Прежде 
чем распечатать данные, захват необходимо отключить.

В диалоговом окне Print Range (Печать диапазона) можно также ука-

зать, должны ли вместе с данными печататься порядковые номера и времен-
ные отметки. Если эти поля не нужны, их можно не печатать, чтобы сэконо-
мить бумагу. Установленные параметры используются во всех последующих 
операциях печати.

Чтобы предотвратить перенос строк, ширина которых больше ширины 

листа, можно использовать альбомную ориентацию при печати.

Удаленный мониторинг

DebugView поддерживает удаленный мониторинг, позволяя просматривать 
отладочный вывод, сгенерированный на удаленных системах. DebugView 
может подключаться к нескольким удаленным компьютерам и локальному 

SIN_ch_07.indd   247

27.12.2011   14:30:29


background image

248  Часть 

II   

Работа с утилитами

компьютеру одновременно. Можно переключать режимы просмотра, чтобы 
просматривать данные с определенного компьютера, выбирая его в меню 
Computer (Компьютер) (рис. 7-16), или переключаться между компьюте-
рами, нажимая Ctrl+Tab. Активный компьютер указан на панели заголовка 
и отмечен стрелкой в меню Computer. Можно также открыть каждый ком-
пьютер в отдельном окне и просматривать все данные одновременно.

Рис. 7-16.  Одновременный мониторинг локального компьютера и двух удаленных

Для удаленного мониторинга DebugView запускается на удаленной сис-

теме в режиме агента, отправляя полученный вывод серверному экземпляру 
DebugView, который отображает их. Обычно запуск DebugView в режиме 
агента на удаленном компьютере производится вручную. В некоторых слу-
чаях центральный экземпляр может автоматически установить и запустить 
удаленный агент, но при использовании брандмауэров это обычно невыпол-
нимо. Чтобы начать удаленный мониторинг, нажмите Ctrl+R или выберите 
в меню Computer команду Connect (Подключить), чтобы открыть окно под-
ключения. Введите имя или IP-адрес удаленного компьютера или выберите 
из раскрывающегося списка компьютер, к которому подключались ранее, и 
щелкните OK. DebugView попытается установить и запустить агент на этом 
компьютере; если это не удастся, будет произведена попытка поиска и под-
ключения к уже запущенному агенту. Если это удалось, DebugView начнет 
отображение выходных данных отладки, полученных от этого компьютера, 
добавив его имя в панель заголовка и меню Computer.

Чтобы начать мониторинг локального компьютера, выберите в меню 

Computer команду Connect Local (Подключиться локально). Будьте вни-
мательны, чтобы не подключить несколько экземпляров DebugView к одно-
му компьютеру, так как в этом случае каждый экземпляр будет получать 
только часть данных.

Чтобы одновременно просматривать выходные данные от двух компью-

теров, выберите в меню File (Файл) команду New Window (Новое окно)
чтобы открыть новое окно DebugView, перед установкой второго подключе-
ния. Устанавливайте второе подключение из нового окна.

SIN_ch_07.indd   248

27.12.2011   14:30:29


background image

Утилиты для работы с процессами и диагностики 

Глава 7  249 

Чтобы остановить мониторинг удаленного компьютера, сделайте его ак-

тивным, выбрав его в меню Computer, а затем выберите команду Disconnect 
(Отключить)
 из меню Computer.

Запуск агента DebugView
Чтобы вручную запустить DebugView в режиме агента, добавьте в команд-
ную строку аргумент /a. Пока выполняется запуск, будет отображаться окно 
Waiting for connection (Ожидание подключения) (рис. 7-17). Затем в этом 
окне появится сообщение Connected (Подключение выполнено). Заметьте, 
что в режиме агента DebugView не захватывает и не сохраняет никакие дан-
ные, если нет подключения к монитору DebugView. При подключении агент 
всегда захватывает выходные данные Win32 из текущего сеанса служб тер-
миналов. Чтобы агент захватывал выходные данные отладки ядра, добавь-
те в командную строку параметр /k; чтобы получать подробные выходные 
данные ядра, добавьте в командную строку параметр /v. Чтобы получать 
глобальные выходные данные (из сеанса 0), добавьте в командную строку 
параметр /g.

Рис. 7-17.  Окно агента DebugView

Если монитор отключается или подключение прерывается по другим 

причинам, в окне состояния агента снова появляется сообщение Waiting for 
connection (Ожидание подключения), и DebugView ожидает нового под-
ключения. Чтобы получать сообщение о возникающей ошибке, добавьте в 
командную строку агента параметр /e. Новое подключение не будет уста-
новлено, пока пользователь не закроет окно сообщения.

Можно скрыть окно состояния агента, добавив в командную строку пара-

метр /t; вместо окна будет отображаться значок в области уведомлений па-
нели задач. Когда агент не подключен к монитору, этот значок будет серым, 
и цветным, когда подключение установлено. Чтобы открыть окно состояния, 
дважды щелкните на этом значке. При сворачивании окно снова исчезнет, 
оставив только значок. Можно совсем скрыть пользовательский интерфейс 
агента, добавив параметр /s. При этом агент DebugView останется активным 
до тех пор, пока пользователь не выйдет из системы, и будет принимать под-
ключения мониторов в тихом режиме. Параметр /s перекрывает параметр 
/e: если монитор отключается, агент будет ожидать в тихом режиме и при-
нимать новые подключения без отображения уведомлений.

Агент, запущенный вручную, прослушивает подключения к порту TCP 

2020. Брандмауэр Windows может показать предупреждение при первом за-
пуске DebugView в режиме агента. Если пользователь разрешит доступ, ука-
занный в предупреждении, Windows создаст исключение брандмауэра для 

SIN_ch_07.indd   249

27.12.2011   14:30:29


background image

250  Часть 

II   

Работа с утилитами

DebugView, без него запущенный вручную агент не будет работать. Заметьте, 
что подключения устанавливаются анонимно, без аутентификации.

Если монитор реализован как служба Windows, агент автоматически 

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

При использовании агента, автоматически установленного монитором, 

состояние глобального захвата, захвата отладочных данных Win32, захвата 
данных режима ядра и новых удаленных сеансов будет определяться теку-
щими параметрами монитора DebugView. Изменения в этих параметрах бу-
дут применяться к наблюдаемому компьютеру незамедлительно.

LiveKd

LiveKd позволяет использовать отладчики ядра для просмотра моменталь-
ного снимка работающей системы, не перезагружая систему в режиме от-
ладки. Это полезно при решении проблем, возникающих в режиме ядра на 
компьютере, не загруженном в режиме отладки. Некоторые проблемы пло-
хо воспроизводятся, поэтому перезагрузка системы может помешать. Кроме 
того, загрузка компьютера в режиме отладки изменяет поведение некоторых 
подсистем, что может еще больше затруднить анализ. LiveKd не только не 
требует загрузки в режиме отладки, но и позволяет отладчикам Microsoft 
выполнять некоторые действия, доступные только при локальной отладке 
ядра, такие как создание полного дампа памяти.

В дополнение к проверке локальной системы, LiveKd поддерживает 

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

LiveKd создает файл дампа с моментальным снимком памяти ядра, не 

останавливая ядро во время его создания. Затем LiveKd предоставляет этот 
файл выбранному отладчику ядра. После этого можно использовать отлад-
чик для выполнения любых операций с этим снимком памяти работающего 
ядра, как с обычным файлом дампа.

Поскольку LiveKd получает дамп физической памяти, возможны ситуа-

ции, когда структуры данных находятся в процессе изменения системой и 
не являются согласованными. Запускаясь, отладчик каждый раз начинает 
работать со свежим представлением состояния системы. Если вы хотите об-
новить моментальный снимок, выйдите из отладчика (команда q), и LiveKd 

SIN_ch_07.indd   250

27.12.2011   14:30:29


background image

Утилиты для работы с процессами и диагностики 

Глава 7  251 

спросит, хотите ли вы запустить его снова. Если отладчик зацикливается 
при выводе, нажмите Ctrl+C, чтобы прервать операцию, и перезапустите 
его. Если он завис, нажмите Ctrl+Break; процесс отладчика будет завершен, 
и система спросит, нужно ли запустить отладчик снова.

Требования LiveKd

LiveKd поддерживает все версии Windows x86 и x64. Запускать эту утилиту 
необходимо с администраторскими правами, включая привилегию Debug 
(Отладка).

Работа LiveKd зависит от утилит отладки для Windows (Debugging Tools 

for Windows), которые должны быть предварительно установлены на том 
компьютере, где будет запускаться LiveKd. Скачать эти утилиты можно 
по адресу http://www.microsoft.com/whdc/ devtools/debugging/default.mspx
Раньше установщик утилит отладки можно было скачать отдельно, но те-
перь они входят в состав SDK Windows. Чтобы установить их, нужно запу-
стить установщик SDK и выбрать установку утилит отладки. Можно также 
использовать варианты Debugging Tools Redistibutable, которые представ-
лены отдельными установщиками, доступными для архитектур x86, x64 и 
IA64. Они удобны, если вы хотите установить утилиты отладки на другие 
компьютеры без установки SDK.

LiveKd требует файлы символов ядра. При необходимости их можно ска-

чать с открытого сервера символов Microsoft. Если анализируемая система 
не подключена к Интернету, необходимые файлы символов можно взять из 
другой системы (см. врезку ниже).

Запуск LiveKd

LiveKd имеет следующий синтаксис командной строки:

livekd [-w | -k путь_к_отладчику | -o файл_дампа] [[-hvl] | [-hv имя_VM]
[-p]] [
параметры отладчика]

В табл. 7-3 вкратце описаны параметры командной строки LiveKd. Ниже 

они рассматриваются подробнее.

Табл. 7-3.  Параметры командной строки LiveKd

Параметр

Описание

-w

Запускает WinDbg.exe вместо Kd.exe

-k путь_к_отладчику

Запускает указанный отладчик вместо Kd.exe

-o файл_дампа

Сохраняет дамп ядра в файл_дампа вместо запуска 
отладчика

-hvl

Используется на хосте Hyper-V; показывает список GUID 
и имен доступных гостевых виртуальных машин

-hv имя_VM

Используется на хосте Hyper-V; выполняет отладку 
виртуальной машины, указанной по GUID или имени

SIN_ch_07.indd   251

27.12.2011   14:30:29