ГЛАВА 12
Специальные Отладочные Задачи
12.1 Загружаемые Драйверы Устройств
12.2 Программы Начальной Загрузки
12.3 Обработчики Прерываний
12.4 Операционные Системы, Отличные от DOS (non-DOS)
221
В автономном режиме Soft-ICE может быть мощным инструментом. Эта часть
описывает технику отладки компонентов системного уровня, используя Soft-ICE в
автономном режиме. При использовании Soft-ICE как автономного отладчика,
ACTION должна быть установлена на HERE.
12.1 Загружаемые Драйверы Устройств
Отладка загружаемых драйверов устройств DOS требует отладчика, который не
выполняет вызовов DOS. Soft-ICE может использоваться в автономном режиме, если
ваш отладчик использует DOS.
Есть два метода отладки загружаемых драйверов устройств:
1. Используйте команду MAP, чтобы найти расположение вашего
загружаемого драйвера. Просмотрите заголовок драйвера устройства,
чтобы найти точку входа в прерывание или стратегию.
Установка точки останова на вход в стратегию или прерывание
даст вам контроль над драйвером устройства. Далее трассируйте
или устанавливайте точки останова для продолжения отладки.
Отладка кода инициализации драйвера устройства
требует сброса системы командой BOOT.
Используйте вышеописанную методику для установки
точки останова в коде драйвера. Команда
BOOT будет сохранять Soft-ICE и точки останова.
2. Второй метод требует размещения специального кода в
вашем драйвере. Сделайте это при помощи команды
I3HERE ON (см. раздел 5.4). Поместите опкод INT 3
(CCH) в ваш драйвер устройства в точке, где
необходим контроль. Когда выполняется INT 3,
управление переходит к Soft-ICE. Затем вы можете использовать
команду R IP для установки указателя команд для переходов
до и после опкода INT 3.
Если вы хотите отлаживать вашу последовательность инициализации,
удостоверьтесь, что Soft-ICE загружается в CONFIG.SYS до драйвера, который вы
пытаетесь отлаживать. Поместите команду I3HERE ON
222
в строку установок в S-ICE.DAT. При этом методе вам не нужно использовать
команду BOOT.
Если вы отлаживаете ваш драйвер устройства с символами или по исходному тексту,
вы должны загрузить файл символов и исходные файлы отдельно от драйвера
устройства. Файл символов и исходные файлы загружаются загрузчиком программ
Soft-ICE LDR.EXE. Когда LDR.EXE используется, чтобы загружать только символы и
исходный текст, вы должны использовать его в форме:
LDR название-файла.SYM
Должно быть указано расширение файла символов. См. часть 7.4 для больших
подробностей относительно LDR.EXE.
После загрузки файла символов и исходных файлов при помощи LDR.EXE вы должны
войти в Soft-ICE и переместить символы относительно начала вашего драйвера
устройства. Символы перемещаются командой Soft-ICE SYMLOC. Синтаксис команды
SYMLOC:
SYMLOC сегмент
Значение сегмента получается из команды MAP. См. описание команды SYMLOC для
больших подробностей.
12.2 Программы Начальной Загрузки
Отладка программ начальной загрузки или самозагружающихся программ требует
использования Soft-ICE как автономного отладчика. Вы должны сначала загрузить
DOS и запустить Soft-ICE. Самый простой метод отладки программ начальной
загрузки - установка точки останова на известный адрес в загрузчике и затем
использование команды BOOT для сброса системы. Soft-ICE сохраняется во время
всего процесса начальной загрузки с установленными точками останова. Если
тяжело найти известный адрес, то можно установить точку останова на
выполнение в 7C0:0H перед использованием
223
команды BOOT. Это - адрес, по которому ROM BIOS загружает сектор начальной
загрузки в память.
Другой метод требует включения режима I3HERE (см. часть 5.4). Поместите опкод
INT 3 (CCH) в вашу программу в точке, где необходим контроль.
Когда выполняется INT 3, управление приходит к Soft-ICE.
Вы также можете использовать как символьную, так и отладку по исходному тексту
при отладке программы начальной загрузки. См. команду SYMLOC для большей
информации о том, как переместить ваши символы и исходный текст в сегмент, в
который загружена ваша программа начальной загрузки.
12.3 Обработчики Прерываний
Soft-ICE позволяет устанавливать точки останова и пошагово выполнять
подпрограммы обслуживания аппаратных прерываний (таймер, клавиатура и т.д.).
Пошаговое выполнение и установка точек останова в программах обработки
прерывания поддерживается Soft-ICE. Вы даже можете трассировать обработчик
прерывания клавиатуры, когда Soft-ICE использует клавиатуру для ввода.
В большинстве случаев при отладке программ обработки прерываний, Soft-ICE
должен использоваться как автономный отладчик. Чтобы установить точку останова
на адрес обработчика прерывания, используйте один из следующих методов:
1. Используйте команду вывода двойного слова:
DD номер-прерывания * 4 L 1
Выведенный адрес - адрес первой
команды обработчика прерывания. Установите
точку останова на выполнения на этот адрес.
2. Используйте команду:
BPINT номер-прерывания
224
12.4 Операционные Системы, Отличные от DOS (non-DOS)
При помощи Soft-ICE могут отлаживаться операционные системы режима реальной
адресации, отличные от DOS. Если операционная система слабо совместима с DOS,
вы должны загрузить Soft-ICE под DOS, а затем использовать команду BOOT, чтобы
запустить другую операционную систему. Следуйте инструкциям для отладки
блоков начальной загрузки и самозагружающихся программ из раздела 12.2.
Команды MAP и WARN могут неправильно функционировать под другими
операционными системами, но точки останова и другие отладочные команды будут
работать правильно.
При отладке с символами или исходным текстом вы должны загрузить символьные
и исходные файлы под DOS или в DOS-совместимом режиме вашей
операционной системы.
~~\ Перевел Сергей Середа, 1998, Кишинев 24-71-96, /~~
~~\ e-mail: serge_sereda@hotmail.com /~~
[ ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ ]
|