Программирование драйверов Windows

         

Запуск и окончание отладочной сессии


Основное предназначение отладчика WinDbg &#8212 интерактивная отладка. Для этого необходимо наличие двух компьютеров: целевого (на нем будет запущен тестовый код) и хост-компьютер (на котором производится разработка и работает WinDbg). Существенно здесь то, что для управления и мониторинга активности на целевом компьютере используется интерфейс последовательных портов. На рисунке 13.1 показано соединение хост и целевого компьютеров и размещение файлов на них.

Для успешной отладки необходимо, чтобы все нужные файлы оказались на своих местах. Последовательность действий такова.



Рис. 13.1

Интерактивная отладка с использованием WinDbg

  • Инсталлировать бинарный файл драйвера на целевой машине, причем там не нужно устанавливать файлы идентификаторов или исходного текста.
  • На хост-компьютере необходимо иметь файлы идентификаторов драйвера и файлы идентификаторов операционной системы, установленной на целевом компьютере. Неплохо было бы, чтобы на двух компьютерах была бы установлена одна и та же версия системы (и одинаковые обновления, Service pack), однако это не является жестким условием.
  • На хост-компьютере запускается WinDbg. Происходит установка путей к исходному коду и к файлам идентификаторов. Эти файлы должны соответствовать бинарному файлу отлаживаемого драйвера, который находится на целевом компьютере.
  • Необходимо выбрать отладку в режиме ядра в меню View закладки Options Kernel Debugger в отладчике WinDbg.
  • Необходимо установить приемлемые значения номера СОМ порта и скорости передачи из упомянутого диалогового окна.
  • Следует выбрать кнопку GO или ввести команду g в окне командной строки отладчика для того, чтобы перевести WinDbg в режим ожидания соединения с целевым компьютером.
  • Необходимо выполнить перезагрузку целевого компьютера, разрешив использование клиента отладки. Когда завершится перезагрузка системы на целевом компьютере, соединение будет установлено. В командном окне WinDbg будет выведено соответствующее сообщение.
  • Хост-компьютер теперь имеет полный контроль над целевым компьютером. Можно устанавливать точки прерывания, даже в том коде, который еще не был загружен в память ядра.

    Чтобы разорвать отладочную сессию, необходимо выполнить следующее.

  • Сделать паузу, нажав Ctrl-C в командном окне WinDbg.
  • Следует выбрать Edit &#8212 Breakpoints в отладчике WinDbg, затем выполнить Clear All. Важно выполнить очистку точек останова до прекращения отладочной сессии.
  • Следует выбрать Run &#8212 Go для того, чтобы разрешить дальнейшую работу на целевом компьютере.
  • Выйти из WinDbg (Alt-F4).
  • Целевой компьютер может отреагировать некоторой задержкой на разрыв соединения, возможно из-за того, что процедуры KdPrint и DbgPrint

    более не имеют получателя своих сообщений и им нужно некоторое время для отработки этой ситуации.



    Содержание раздела