Запуск и окончание отладочной сессии
Основное предназначение отладчика WinDbg — интерактивная отладка. Для этого необходимо наличие двух компьютеров: целевого (на нем будет запущен тестовый код) и хост-компьютер (на котором производится разработка и работает WinDbg). Существенно здесь то, что для управления и мониторинга активности на целевом компьютере используется интерфейс последовательных портов. На рисунке 13.1 показано соединение хост и целевого компьютеров и размещение файлов на них.
Для успешной отладки необходимо, чтобы все нужные файлы оказались на своих местах. Последовательность действий такова.
|
Рис. 13.1
Интерактивная отладка с использованием WinDbg
|
|
Инсталлировать бинарный файл драйвера на целевой машине, причем там не нужно устанавливать файлы идентификаторов или исходного текста.
На хост-компьютере необходимо иметь файлы идентификаторов драйвера и файлы идентификаторов операционной системы, установленной на целевом компьютере. Неплохо было бы, чтобы на двух компьютерах была бы установлена одна и та же версия системы (и одинаковые обновления, Service pack), однако это не является жестким условием.
На хост-компьютере запускается WinDbg. Происходит установка путей к исходному коду и к файлам идентификаторов. Эти файлы должны соответствовать бинарному файлу отлаживаемого драйвера, который находится на целевом компьютере.
Необходимо выбрать отладку в режиме ядра в меню View закладки Options Kernel Debugger в отладчике WinDbg.
Необходимо установить приемлемые значения номера СОМ порта и скорости передачи из упомянутого диалогового окна.
Следует выбрать кнопку GO или ввести команду g в окне командной строки отладчика для того, чтобы перевести WinDbg в режим ожидания соединения с целевым компьютером.
Необходимо выполнить перезагрузку целевого компьютера, разрешив использование клиента отладки. Когда завершится перезагрузка системы на целевом компьютере, соединение будет установлено. В командном окне WinDbg будет выведено соответствующее сообщение.
Хост-компьютер теперь имеет полный контроль над целевым компьютером. Можно устанавливать точки прерывания, даже в том коде, который еще не был загружен в память ядра.
Чтобы разорвать отладочную сессию, необходимо выполнить следующее.
Сделать паузу, нажав Ctrl-C в командном окне WinDbg.
Следует выбрать Edit — Breakpoints в отладчике WinDbg, затем выполнить Clear All. Важно выполнить очистку точек останова до прекращения отладочной сессии.
Следует выбрать Run — Go для того, чтобы разрешить дальнейшую работу на целевом компьютере.
Выйти из WinDbg (Alt-F4).
Целевой компьютер может отреагировать некоторой задержкой на разрыв соединения, возможно из-за того, что процедуры KdPrint и DbgPrint
более не имеют получателя своих сообщений и им нужно некоторое время для отработки этой ситуации.
Содержание раздела