Руководство по Soft-ICE (DOS) - 19
|
- Я умею торм... торм... тормозить.
WINDOWS:
- А я умею висееееееееее...
|
LDR название-программы | название-программы.SYM |
название-программы.расширение
7.4.1 Загрузка Программы, Символов и Исходного Текста
Для загрузки вашей программы, символов и исходных файлов за один шаг, вы
должны использовать LDR.EXE так:
Обратите внимание, что название-программы не имеет расширения. Если расширение
не указано, LDR.EXE выполнит следующие действия:
1. Загрузит название-программы.SYM в расширенную память
2. Загрузит исходные файлы в расширенную память. Этот шаг
выполняется только, если в .SYM-файле есть записи об исходных файлах.
3. Загрузит название-программы.EXE в память, в
область, куда бы она загрузилась, если бы была загружена
непосредственно из командной строки DOS.
4. Вызовет Soft-ICE с указателем инструкций на
первой инструкции вашей программы. Если это - C-
программа и для файла, содержащего _MAIN,
загружен исходный текст, тогда исходный текст этого файла
будет видим в окне кода.
7.4.2 Загрузка только Символов и Исходных Файлов
Если вы хотите загрузить только символы и исходные файлы (например, для отлад-
ки загружаемого драйвера устройства), вы должны использовать LDR.EXE так:
LDR название-программы.SYM
|
Обратите внимание, что расширение .SYM - указано. .SYM-файл и исходные файлы
будут загружены в расширенную память. Когда символы загружены таким образом,
символы вашей программы или драйвера устройства будут приняты для ссылки с
адреса 0:0. Так как это - редкий случай, вы должны будете использовать команду
Soft-ICE, SYMLOC для локализации символов. См.
описание команды SYMLOC в главе 5.10 для полной информации.
Вот пример загрузки файла символов, называющегося DRIVER.SYM:
7.4.3 Загрузка Программы Без Символов или Исходного Текста
Для загрузки программного файла без загрузки связанного с ним файл символов,
вы должны использовать LDR.EXE так:
LDR название-программы.расширение
|
Обратите внимание, что расширение файла присутствует. Обычно расширение файла
будет .EXE или .COM. Когда расширение файла определено, LDR.EXE загрузит
программу и вызовет Soft-ICE с указателем инструкций на первой
инструкции программы. Вот пример загрузки программы с символами
и исходным текстом:
Примечания:
LDR.EXE автоматически сохраняет копию таблицы векторов прерываний при
загрузке вашей программы. Это эквивалентно выполнению команды VECS S. Если вы
хотите выйти из вашей программы до ее завершения, вы можете выполнить
EXIT R для выхода из программы и восстановления таблицы векторов прерываний.
Использование LDR.EXE для загрузки только название-программы.EXE часто полезно
для рестарта вашей программы, во время сессии отладки по исходному тексту.
Для рестарта выполните команду EXIT R, чтобы прервать текущую сессию. Затем
используйте LDR.EXE, для повторной загрузки вашего .EXE-файла. Символы:
исходный текст не должен загружаться, т.к. он остается в расширенной памяти.
Если LDR.EXE выдает вам сообщение "Out of space loading symbol
information", это означает, что вы не зарезервировали достаточно расширенной
памяти при помощи переключателя загрузки /SYM в CONFIG.SYS.
Если LDR.EXE не находит ваши исходные файлы в той же директории, что и
программа, которую вы загружаете, LDR.EXE попросит указать путь, по которому
он может найти исходные файлы. Если у вас исходные файлы в нескольких
директориях или вы часто загружаете программу, это становится тяжелым.
Вы можете устранить необходимость во вводе, используя переменную окружающей
среды DOS, SRC. LDR.EXE использует эту переменную окружающей среды, чтобы
найти исходные файлы до обращения к пользователю. Вот синтаксис для установки
переменной окружающей среды из командной строки DOS:
SET SRC = директория;директория;...;директория
|
В каждой из указанных директорий будет произведен поиск до обращения к
пользователю.
Ограничения:
Soft-ICE поддерживает символы только для одной программы одновременно. Если вы
загружаете новый .SYM-файл, существующий - перезаписывается.
Soft-ICE не поддерживает оверлеи или перемещения сегментов Microsoft Windows.
Soft-ICE распознает только публичные символы и номера строк. Он не
поддерживает локальные переменные.
7.5 Символьная Отладка
После того, как вы загрузили вашу программу и .SYM-файл, вы можете начинать
символьную отладку вашей программы. Вообще символ может использоваться в любой
команде вместо адреса.
Символы также используются несколькими командами Soft-ICE, когда выводятся
адреса. Например, команда U выводит символьные имена меток и
процедур, когда с ними сталкивается.
Есть две команды, которые полезны при символьной
отладке:
* SYM -- Используйте команду SYM, чтобы получить список
названий и значений символов или изменить значение
символа.
* SYMLOC -- Используйте команду SYMLOC, чтобы
переместить базу всех ваших символов. Вы
будете должны использовать команду SYMLOC когда:
1. Загружаете символы для загружаемого драйвера устройства
2. Загружаете символы для T&SR, который уже
загружен
3. Ваша программа перемещает себя в местоположение,
отличное от первоначального.
См. часть 5. 10 для полного описания этих команд.
7.6 Отладка по Исходному Тексту
Когда загружены исходные файлы, Soft-ICE позволяет вам просматривать и
проходить ваш исходный код как при обычной отладке. Soft-ICE предоставляет два
разных режима отладки по исходному тексту: смешанный режим и режим исходного
текста. Используйте команду SRC для переключения между режимами.
Смешанный режим выводит строки исходного текста и код ассемблера, полученный
из этих строк исходного текста, совместно. Смешанный режим полезен, когда вы
должны отлаживать на уровне ассемблера, но использовать исходный текст для
ссылки. Смешанный режим обеспечивается и когда окно кода видимо и когда нет.
Режим исходного текста строго выдает на экран строки исходного текста. Отладка
по исходному тексту требует, чтобы окно кода было видимо.
7.6.1 Использование Номеров Строк
Номера строк могут использоваться вместо адресов в нескольких командах. Для
отличия номера строки от фактического адреса, поместите знак . (точка) перед
номером. Например, чтобы установить точку останова на выполнение в строке
исходного текста 450, введите:
7.6.2 Использование Режима Исходного Текста в Окне Кода
Для входа в режим исходного текста, должно быть видимо окно кода. Если оно
невидимо, используйте команду WC, чтобы сделать его видимым. Однажды войдя в
режим исходного кода, вы можете использовать команды Soft-ICE, переключаться
на другой исходный файл, просматривать исходный текст в любом месте файла,
пролистывать файл, искать строки в файле и устанавливать точки останова в
файле. Для полной информации следующих команд см. их описания в главах 4 и 5.
Следующий список - краткий обзор команд, полезных при отладке по
исходному тексту:
* Сделать окно кода видимым (если оно еще не видимо)
командой WC.
* Переключить между режимом исходного текста, смешанным и режимом кода
командой SRC. Для переключения режимов введите:
SRC
* Поместить исходный файл в окно кода (если он еще не
там) командой FILE. Например, для
перехода от текущего файла к файлу MAIN.C введите:
* Вывести исходный текст с определенной позиции в
исходном файле командой U. Чтобы изменить
вывод на определенную строку или адрес памяти
используйте команду U. Вы можете указывать фактические
адреса или номера строк как параметры для
команды. Например, чтобы просмотреть исходный текст в
окне кода, начиная со строки исходного текста 450, введите:
* Найти текущую инструкцию в окне кода
командой . (точка).
* Искать определенную символьную строку командой
SS. Например, чтобы искать строку
"Hello World", начиная со строки 100 в текущем
исходном файле, введите:
* Переместить курсор в окно кода (если он еще не
там) командой EC.
* Листать исходный текст клавишами вверх, вниз,
PageUp, PageDn.
* Установить точку останова типа point-and-shoot командой
BPX. Просто поместите курсор в строку исходного
текста, на которой вы хотите остановиться, затем введите:
ГЛАВА 8
8.1 Введение
У Soft-ICE есть менеджер отображаемой памяти, встроенный в его ядро. Менеджер
отображаемой памяти Soft-ICE поддерживает спецификацию Lotus-Intel-Microsoft
4.0. Эта возможность Soft-ICE полезна, если вы используете программы,
поддерживающие спецификацию EMM или если вы должны нарастить вашу
обычную память, чтобы расширить системную память до 640КБ или больше.
Другие контролирующие программы 386, обеспечивающие возможности EMM (типа QEMM
или 386-to-the-MAX) не будут работать с Soft-ICE. Если вы используете эти
программы для возможностей EMM или наращивания, вы можете использовать вместо
них EMM-менеджер Soft-ICE.
Активизация возможностей EMM в Soft-ICE включает следующие шаги:
1. Конфигурирование окружения отображаемой памяти
утилитой EMMSETUP.EXE. Эта утилита
изменяет S-ICE.EXE с учетом желаемой карты
EMM-страниц.
2. Добавление переключателя /EMM в вашу строку S-ICE.EXE в
CONFIG.SYS. Это резервирует часть
расширенной памяти для отображаемой памяти.
Вот пример строки в CONFIG.SYS, резервирующей
память для EMM:
DEVICE = S-ICE.EXE /EMM 2048
|
Будет зарезервировано 2 мегабайта расширенной памяти на
использование для EMM. См. часть 6.3 (Загрузка Soft-ICE
как Загружаемого Драйвера Устройства) для деталей
установки Soft-ICE в CONFIG.SYS.
3. Перезагрузите вашу систему.
8.2 Конфигурирование Окружения EMM
Перед установкой S-ICE.EXE с переключателем /EMM в файл CONFIG.SYS, вам может
быть придется запустить EMMSETUP.EXE чтобы сконфигурировать окружение EMM 4.0.
Этот процесс конфигурации позволит вам указать, какие участки памяти вы
хотели бы сделать доступными как страницы EMM 4.0. Запуск EMMSETUP.EXE сильно
рекомендуется, если вы используете программы, требующие все преимущества
спецификации EMM 4.0.
8.2.1 Страницы EMM по умолчанию
По умолчанию, S-ICE.EXE с переключателем /EMM - сконфигурирован предоставить
страницы EMM 4.0 в следующих областях:
* Нижние 640КБ (кроме 1-х 64КБ)
* 64КБ, начинающиеся с D000H
Вы можете захотеть реконфигурировать EMM по следующим причинам:
* У вас может быть устройство типа сети, использующее
область памяти с D000H.
* Вы можете захотеть заполнить большее количество "дыр" выше 640КБ
страницами EMM. Это увеличит производительность и
применимость программ типа Microsoft Windows. Чтобы
получить максимальную производительность от Microsoft
Windows, вы должны заполнить все доступные страницы
отображаемой памятью.
|