Приложение А
ОТЛАДКА
Если у вас возникнет
необходимость в отладке фрагмента программы,
блокирующего буфер визуализации (или в ситуации,
когда буфер уже заблокирован функцией GetDC),
придется воспользоваться отладчиком, который не
пользуется тем же экраном, что и ваша программа. В
данном приложении содержатся некоторые
рекомендации по работе с отладчиком Microsoft Visual C++
в удаленном режим, а также сведения об отладчике
ядра Microsoft Windows (Wdeb386), входящего в состав Win32 SDK.
Разумеется, существует много других отладчиков,
которыми вы также можете пользоваться, однако
при подготовке программ для этой книги я
остановил свой выбор на двух выше упомянутых.
Удаленная отладка в Visual C++
Приведенные ниже
инструкции предполагают, что вы установили Microsoft
Windows 95 на обоих компьютерах - на рабочем (ведущем)
и на тестовом (ведомом). Кроме того, вы должны
установить Visual C++ на ведущем компьютере,
соединить ПК посредством локальной сети и
установить стек протокола TCP/IP. Условные имена
ведущий и ведомый следует заменить именами ваших
компьютеров.
1. На ведомом компьютере
создайте каталог TEST и задайте его совместное
использование с именем TEST и полным доступом без
пароля.
2. Скопируйте
перечисленные ниже файлы из соответствующего
каталога ведущего компьютера (Msdev\bin или WindowsVSystem)
в \\TARGET\TEST (здесь и в дальнейшем TARGET заменяется
именем ведомого компьютера):
Msvcmon.exe, Msvcrt40.dll, TInOt.dll, DmnO.dll.
Эти файлы необходимы для проведения сеансов
отладки на ведомом компьютере.
3. Скопируйте ЕХЕ-файл
отлаживаемой программы и все необходимые
DLL-библиотеки в \\TARGET\TEST.
4. Запустите на ведущем
компьютере Visual C++ и выполните команду Tools Ѓ Remote
Connection. В окне диалога Remote Connection выберите строку
Network (TCP/IP) и нажмите кнопку Settings.
5. В окне диалога Win 32 Network
(TCP/IP) Settings укажите имя ведомого компьютера или
его IP-адрес (например, 199.99.99.9) и введите пароль
(например, DEBUG). Вы обязаны заполнить поле с
паролем. Нажмите кнопку ОК во всех окнах диалога.
6. На ведомом компьютере
запустите программу Msvcmon.exe, выберите из списка
строку Network (TCP/IP) и нажмите кнопку Settings.
7. В окне диалога Win 32 Network
(TCP/IP) Settings введите имя ведомого компьютера и
пароль, заданный на шаге 5.
8. Нажмите кнопку Connect,
чтобы начать сеанс отладки на ведомом
компьютере. До установления связи с ведущим
компьютером открывается окно диалога Connecting.
9. На ведущем компьютере
выполните команду Build Ѓ Settings в среде Visual C++. В окне
диалога Project Settings выберите вкладку Debug. В полях
ж^
VnanouLJaa /wn-ani/o D \/ienal f^^-J.
'ЧГЙЙ 40'У
Remote Executable Path и File Name
введите путь к исполняемому файлу,
скопированному на ведомый компьютер на шаге 3
(например, \TEST\D3DEval.exe). Нажмите кнопку ОК.
10. Нажмите кнопку Go в Visual C++,
чтобы начать сеанс отладки. Вероятно, на экране
появится окно диалога Find Local Module, в котором
следует указать местонахождение локальных
DLL-библиотек. Введите путь к каждой из них или
снимите флажок, который предлагает вам
продолжить поиски.
На ведомом компьютере
должно запуститься ваше приложение. Ведущий
компьютер будет использоваться для отладки.
После завершения работы выйдите из приложения и
нажмите кнопку Disconnect в окне диалога Connecting на
ведомом компьютере. Не забудьте выбрать в списке
Remote Connection на ведущем компьютере строку Local.
В случае, если вам не
приходилось ранее пользоваться отладчиком Visual
C++, подробное описание его работы можно найти в
документации.
Отладка с использованием Wdeb386
Если вы хотите получить
полный контроль над процессом отладки, вам
придется воспользоваться отладчиком Wdeb386. Он
позволяет отлаживать любые программы для Windows 95 -
приложения, DLL-библиотеки, драйверы устройств, VxD
и т. д. Отладчик входит в состав Win32 SDK, который
включен в Microsoft Developer Network (II уровень).
Ниже приведены краткие
инструкции по запуску Wdeb386. Более подробное
описание и перечень команд Wdeb386 можно найти в
документации по Win32 SDK.
1. Воспользуйтесь
терминалом стандарта RS232 или другим компьютером.
Настройте терминал на скорость передачи данных
9600 или 19200 бод. Обычно я задаю для своего
терминала 8-битные данные, отсутствие контроля
четности и 1 стоп-бит.
2. Подключите терминал к
одному из СОМ-портов основного компьютера через
нуль-модемный кабель (подробное описание
кабельного соединения имеется в
сопроводительной документации по установке
Wdeb386).
3. Запустите на основном
компьютере терминальное приложение (например,
HyperTerminal) и убедитесь в правильности пересылки
текста на терминал. Наберите на терминале
какой-нибудь текст и проверьте, верно ли он
передан на основной компьютер. Это позволит быть
уверенным в правильности аппаратных настроек.
4. На основном компьютере
скопируйте все DLL-библиотеки и символьные файлы
из каталога Mstools\debug в Windows\System. Вероятно, для этого
вам придется загрузиться в режиме командной
строки, поскольку иначе не удастся заместить
используемые файлы (такие, как Gdi32.dll). Чтобы
загрузить компьютер в режиме командной строки,
нажмите клавишу F8 при появлении сообщения Starting
Windows во время загрузки и выберите из меню команду
Command Prompt Only или выполните команду Shut Down из меню Start
Windows 95 и выберите Restart The Computer in MS-DOS Mode.
5. Чтобы запустить сеанс
отладки, загрузитесь в режиме командной строки и
запустите Wdeb386.ехе. Типичная команда для его
загрузки выглядит следующим образом: wdeb386.exe/c:1
/r:9600/s:myfite.sym/s:gdi.sym\windows\win.com.
328 НУ Приложение А.
Отладка
После запуска отладчика
загружается Windows, и вы можете тестировать свое
приложение. Чтобы перейти в отладчик, нажмите Ctrl+C
на терминале или Ctrl+Alt+SysRq на основном компьютере.
Если на вашем ПК имеется переключатель NMI
(немаскируемого прерывания), он также может
использоваться для выхода в отладчик. После
этого ваш основной компьютер блокируется до
выполнения очередной команды отладчика. Если вы
не знаете, что делать дальше, попробуйте команду
д - сокращение от go.
Команды для загрузки
многочисленных символьных файлов удобно собрать
в одном текстовом файле:
/s DDRAW16.SYM /s D3DRAMPF.SYM /s D3DRGBF.SYM /s
KRNL386.SYM /S D3DRM8F.SYM /s GDI.SYM /s D3DRM16F.SYM /s D3DRG8F.SYM /s D3DRG16F.SYM /s
D3DHALF.SYM
Сохраните этот список в
файле, например Debug, inf. Затем можно создать
простой пакетный файл для запуска сеанса отладки
или ввести следующую командную строку:
wdeb386.exe c:l /r:9600
/f:debug.inf \windows\win.corn /
Подробные инструкции по
работе с отладчиком приведены в руководстве
пользователя Wdeb386, входящем в Win32 SDK.
Далее... |