Delphi World - Руководство по Soft-ICE (DOS) - 18
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Руководство по Soft-ICE (DOS) - 18
Автор: Сергей Середа
WEB-сайт: http://consumer.nm.ru

- Сколько нужно программистов, чтобы ввернуть лампочку?
- Ни одного: это аппаратная проблема, а они этим не занимаются!

6.4 Файл Инициализации Soft-ICE, S-ICE.DAT

У Soft-ICE есть несколько опций загрузки. Эти опции указываются размещением специальных команд в файле инициализации, называющемся S-ICE.DAT. S-ICE.DAT - текстовый ASCII-файл, который Soft-ICE читает при загрузке. Этот файл может содержать назначения функциональных клавиш, строку автостарта и различные опции конфигурации. Файл может быть создан и отредактирован любым текстовым редактором DOS. При загрузке Soft-ICE из командной строки, S-ICE.DAT должен находиться в текущем каталоге или в каталоге, доступном через вашу текущую переменную PATH. Когда Soft-ICE загружается как драйвер устройства в CONFIG.SYS, S-ICE.DAT должен быть в том же самом каталоге, где находится S-ICE.EXE.

Есть три категории команд, которые могут быть включены в файл инициализации S-ICE.DAT:

* Специальные опции конфигурации
* Назначения функциональных клавиш
* Последовательность команд инициализации

6.4.1 Специальные Опции Конфигурации

Любая из следующих опций конфигурации, которые необходимы, должна быть помещена в отдельную строку в файле S-ICE.DAT.

* COMPAQ -- Компьютер Compaq 386 и 386SX и некоторые Compaq-совместимые компьютеры (включая компьютеры, содержащие материнские платы Micronix) имеющий 384КБ из несмежных участков расширенной памяти. Опция COMPAQ необходима, если вы хотите, что бы Soft-ICE использовал эту память. Заметьте, что опция COMPAQ идентична параметру командной строки /C в Soft-ICE 1.X.

* NOLEDS -- Опция NOLEDS сообщает Soft-ICE не устанавливать и не очищать LED-ы клавиатуры, во время вызова окна Soft-ICE. На некоторых клавиатурах существуют проблемы с таймером, которые будут вызывать у Soft-ICE потерю синхронизации с клавиатурой. Если Soft-ICE зависает, когда вы - в окне Soft-ICE, используйте эту опцию. Заметьте что опция NOLEDS идентична параметру командной строки /L в Soft-ICE 1.X.

* NOTVGA -- Опция NOTVGA позволяет Soft-ICE работать на BIOS-совместимых VGA-картах. Много карт VGA не совместимы с IBM VGA на уровне аппаратных средств. Эти карты поддерживают VGA только на уровне BIOS. Используйте этот переключатель если у вас один из таких видеоадаптеров. Заметьте, что опция NOTVGA - то же самое, что и параметр командной строки /V в Soft-ICE 1.X.

* EXTENDED -- Опция EXTENDED заставляет Soft-ICE загружаться непосредственно в расширенную память без предупреждения пользователя при помощи специального сообщения. Она должна использоваться, если вы загружаете Soft-ICE из командной строки DOS и не хотите вывода сообщения и больше ничего не знаете об использовании расширенной памяти. Заметьте что опция EXTENDED - тот же самое, что и параметр командной строки /E в Soft-ICE 1.X.

6.4.2 Назначения Функциональных Клавиш

Во время загрузки любой функциональной клавише может быть назначена одна или больше команд Soft-ICE. См. описание команды FKEY в части 5.8 (Команды Настройки Отладчика) для описания назначения функциональных клавиш из командной строки Soft-ICE.

Синтаксис для назначения названий функциональных клавиш в S-ICE.DAT:

Название-функциональной-клавиши = "строка" Название-функциональной-клавиши -- F1, F2... F12. строка -- строка может состоять из любых имеющих силу в Soft-ICE команд и специальных символов ^ и ;. ^ помещается в строку, чтобы сделать команду невидимой. ; помещается в строку для обозначения возврата каретки. Строка должна быть заключена в двойные кавычки.

Вот пример назначения функциональной клавиши в S-ICE.DAT:


F12 = "D 100;"

Это назначит команду Soft-ICE, Dump функциональной клавише 12. При нажатии F12 Soft-ICE будет выводить дамп памяти со смещения 100H в текущем сегменте данных. Точка с запятой после 100 представляет клавишу ВВОД.

6.4.3 Последовательность Команд Инициализации

При загрузке Soft-ICE может быть автоматически выполнена группа команд. Это полезно для настройки Soft-ICE под ваши нужды. Например, вы могли бы установить параметры окон и изменить стандартную комбинацию горячих клавиш. Синтаксис для введения последовательности команд инициализации в S-ICE.DAT следующий:


INIT = "строка-назначения"

строка-назначения -- Строка состоит из любых имеющих силу в Soft-ICE команд и специальных символов ^ и ;. ^ помещается в строку, чтобы сделать команду невидимой. ; помещается в строку для обозначения возврата каретки. Строка должна быть заключена в двойные кавычки.

Пример последовательности команд инициализации в S-ICE.DAT:


INIT = "WIN; WR; WD 1; WC 12; ALTKEY CTRL X;"

Этот пример переведет окно Soft-ICE в полноэкранный режим, создаст окно регистров, создаст окно данных высотой в одну строку, создаст окно кода высотой 12 строк и изменит комбинацию горячих клавиш на CTRL X.

Пример S-ICE.DAT

Пример файла инициализации включен в содержимое дистрибутивной дискеты. Этот пример назначает функциональные клавиши так, что они используются в той же манере, как и функциональные клавиши в отладчике Microsoft CodeView. Этот пример S-ICE.DAT также должен использоваться "как есть" для обучающей части в главе 3.

ГЛАВА 7

Отладка на Уровне Символов и Исходного Текста

7.1 Введение
7.2 Подготовка к Отладке на Уровне Символов или Исходного Текста
7.2.1 Подготовка к Отладке Только на Уровне Символов
7.2.2 Подготовка к Отладке на Уровне Символов и Исходного Текста
7.3 Резервирование Памяти для Символов и Исходного Текста
7.4 Загрузка Программ и Файлов с Символами
7.5 Символьная Отладка
7.6 Отладка по Исходному Тексту

7.1 Введение

Soft-ICE может загружать программы, таблицы символов и исходные тексты для расширенной отладки. Символьная отладка позволяет устанавливать точки останова и ссылаться на переменные по символьным именам, не указывая числовые адреса. Отладка по исходному тексту позволяет вам проходить через вашу программу на уровне исходного текста, а не на уровне машинного кода.

Информация о символах и строках исходного текста извлекается из файла с картой связей. Карта связей должна быть совместима с Microsoft linker версии 3.60 или выше.

Символы и исходные файлы расположены в расширенной памяти. У вас должно быть достаточно памяти для символов и исходных файлов. Исходные файлы не читаются с диска, как во многих отладчиках. Это позволяет Soft-ICE обеспечить полную системную отладку на уровне исходного текста. Вы можете отлаживать резидентные обработчики прерываний и другой системный код на уровне исходного текста.

Заметьте:

Вы не можете использовать символьную или отладку по исходному тексту, пока Soft-ICE не загружен как драйвер устройства в CONFIG.SYS.

7.2 Подготовка к Отладке на Уровне Символов или Исходного Текста

До отладки программы с символами или исходным текстом вы должны создать файл символов. Это - двоичный файл, содержащий информацию о символах и номерах строк в формате, который Soft-ICE понимает. Этот файл создается при помощи утилиты MSYM.EXE. MSYM.EXE читает вашу карту связей, чтобы создать файл символов с расширением (.SYM).

7.2.1 Подготовка к Отладке Только на Уровне Символов

Для подготовки программы только к символьной отладке, вы должны выполнить следующие шаги:

1. Скомпилировать или оттранслировать вашу программу.
2. Слинковать вашу программу с надлежащими переключателями, чтобы создать .MAP-файл, который содержит список публичных символов. Если вы используете Microsoft linker, необходимо использовать переключатель /MA. Этот .MAP-файл должен быть идентичен .MAP-файлу, созданному Microsoft linker, версии 3.60 или выше.
3. Создать .SYM-файл, запустив MSYM.EXE. Вот синтаксис для использования MSYM.EXE: MSYM название-программы [.расширение] Если расширение не указано, MSYM принимает расширение .MAP. MSYM читает файл-карту как вход и выдает файл символов как выход. Символьный файл имеет название название-программы.SYM.

Заметьте:

До компилирования или трансляции вашей программы вы можете захотеть сделать публичными некоторые дополнительные символы. При символьной отладке Soft-ICE поддерживает только публичные символы. Методы объявления переменных или меток публичными варьируют в зависимости от того, какой язык вы используете.

На языке ассемблера 8086, укажите директиву PUBLIC, сопровождаемую локально определенными символами, которые вы хотите сделать публичными. Например:


PUBLIC FOO, LOOP1, STATUS

На языке C, все названия процедур и статические переменные, определенные вне блока, являются публичными.

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

7.2.2 Подготовка к Отладке на Уровне Символов и Исходного Текста

Для подготовки программы к символьной и отладке по тексту, вы должны выполнить следующие шаги:

1. Скомпилировать или оттранслировать все модули, которые вы хотите отлаживать по исходному тексту с соответствующими переключателями, чтобы поместить информацию о номерах строк в объектные файлы. С языками Microsoft вы можете использовать либо переключатель /Zi либо /Zd. Вы можете не хотеть, проделывать это со всеми файлами, потому что объединенные размеры файла символов и всех исходных файлов, скомпилированных с этими переключателями, должны вписаться в объем расширенной памяти, который вы зарезервировали при помощи переключателя загрузки /SYM в CONFIG.SYS.
2. Слинковать вашу программу с надлежащими переключателями, чтобы создать .MAP-файл, который содержит номера строк исходного текста и список публичных символов. Если вы используете Microsoft linker, необходимо использовать переключатели /LI и /MA. Этот .MAP-файл должен быть идентичен .MAP-файлу, созданному Microsoft linker, версии 3.60 или выше.
3. Создать .SYM-файл, запустив MSYM.EXE. Вот синтаксис для использования MSYM.EXE: MSYM название-программы [.расширение] Если расширение не указано, MSYM принимает расширение .MAP. MSYM читает файл-карту как вход и выдает файл символов как выход. Символьный файл имеет название название-программы.SYM.

7.3 Резервирование Памяти для Символов и Исходного Текста

До загрузки программ, символьных и исходных файлов вы должны зарезервировать расширенную память. Расширенная память резервируется, при загрузке Soft-ICE в CONFIG.SYS. До резервирования расширенной памяти вы можете захотеть сложить размеры .SYM-файла и всех исходных файлов, которые вы хотите загрузить. Вы должны зарезервировать, по крайней мере, столько расширенной памяти. Вы должны использовать переключатель /SYM при загрузке S-ICE.EXE. Вот пример строки в CONFIG.SYS для загрузки Soft-ICE и резервирования места для символов и исходных файлов:


DEVICE = S-ICE.EXE /SYM 1024

Этот пример загружает Soft-ICE в расширенную память и резервирует 1 мегабайт памяти для символов и исходных файлов. См. часть 6.3 (Загрузка Soft-ICE как Загружаемого Драйвера Устройства) для деталей о резервировании памяти.

7.4 Загрузка Программ и Файлов с Символами

Утилита Soft-ICE, LDR.EXE используется для загрузки программ, файлов символов и исходных файлов. Для символьной отладки прикладных программ и T&SR-программ вы обычно будете использовать LDR.EXE, чтобы загрузить программу, символы и исходные файлы за один шаг. Для отладки загружаемых драйверов устройства, ПЗУ и других системных компонент вы обычно будете использовать LDR.EXE, чтобы загрузить только файл символов и исходные файлы. Вот синтаксис для LDR.EXE:

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования