Если у вас
возникнет необходимость в отладке
фрагмента программы, блокирующего
буфер визуализации (или в ситуации,
когда буфер уже заблокирован
функцией GetDC), придется
воспользоваться отладчиком,
который не пользуется тем же
экраном, что и ваша программа. В
данном приложении содержатся
некоторые рекомендации по работе с
отладчиком Microsoft Visual C++ в
удаленном режим, а также сведения
об отладчике ядра Microsoft Windows (Wdeb386),
входящего в состав Win32 SDK.
Разумеется, существует много
других отладчиков, которыми вы
также можете пользоваться, однако
при подготовке программ для этой
книги я остановил свой выбор на
двух выше упомянутых.
Удаленная
отладка в Visual C++
Приведенные
ниже инструкции предполагают, что
вы установили Microsoft Windows 95 на обоих
компьютерах — на рабочем (ведущем)
и на тестовом (ведомом). Кроме того,
вы должны установить Visual C++ на
ведущем компьютере, соединить ПК
посредством локальной сети и
установить стек протокола TCP/IP.
Условные имена ведущий и ведомый
следует заменить именами ваших
компьютеров.
1. На ведомом
компьютере создайте каталог TEST и
задайте его совместное
использование с именем TEST и полным
доступом без пароля.
2. Скопируйте
перечисленные ниже файлы из
соответствующего каталога
ведущего компьютера (Msdevbin или
WindowsVSystem) в \TARGETTEST (здесь и в
дальнейшем TARGET заменяется именем
ведомого компьютера):
Msvcmon.exe,
Msvcrt40.dll, TInOt.dll, DmnO.dll. Эти файлы
необходимы для проведения сеансов
отладки на ведомом компьютере.
3. Скопируйте
ЕХЕ-файл отлаживаемой программы и
все необходимые DLL-библиотеки в
\TARGETTEST.
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. В
полях Remote Executable Path
и File Name введите путь к исполняемому
файлу, скопированному на ведомый
компьютер на шаге 3 (например,
TESTD3DEval.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-библиотеки и символьные файлы из
каталога Mstoolsdebug в WindowsSystem.
Вероятно, для этого вам придется
загрузиться в режиме командной
строки, поскольку иначе не удастся
заместить используемые файлы
(такие, как 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.symwindowswin.com.
После
запуска отладчика загружается Windows,
и вы можете тестировать свое
приложение. Чтобы перейти в
отладчик, нажмите Ctrl+C на терминале
или Ctrl+Alt+SysRq на основном компьютере.
Если на вашем ПК имеется
переключатель NMI (немаскируемого
прерывания), он также может
использоваться для выхода в
отладчик. После этого ваш основной
компьютер блокируется до
выполнения очередной команды
отладчика. Если вы не знаете, что
делать дальше, попробуйте команду д
— сокращение от go.
Команды для
загрузки многочисленных
символьных файлов удобно собрать в
одном текстовом файле:
Сохраните
этот список в файле, например Debug, inf.
Затем можно создать простой
пакетный файл для запуска сеанса
отладки или ввести следующую
командную строку:
Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!