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

Утилиты для работы с процессами и диагностики
Глава 7 247
установить флажок Wrap (Перенос). Если этот параметр включен, за-
пись будет вестись в начало файла.
Если флажок Append (Добавлять) не установлен, и целевой файл уже
существует, DebugView очистит этот файл, когда начнет запись в него. Если
флажок установлен, новые данные будут добавляться в конец файла.
Если мониторинг выходных данных отладки выполняется с нескольких
удаленных компьютеров, и включена запись в файл, все выходные данные
записываются в один файл. Фрагменты данных от разных компьютеров раз-
деляются заголовком, указывающим имя компьютера, от которого получе-
ны последующие записи.
Параметры записи в журнал можно контролировать также с помощью
параметров командной строки (табл. 7-2).
Табл. 7-2. Параметры командной строки для записи в журнал
Параметр
Описание
-l файл_журнала
Записывает выходные данные в указанный файл
-m n
Ограничивает размер файла журнала до 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

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

Утилиты для работы с процессами и диагностики
Глава 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

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

Утилиты для работы с процессами и диагностики
Глава 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