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

- Вы кем работаете?
- Я фармацевт.
- А, значит в аптеке работаете.
- Нет, диск С форматирую.

Функциональная клавиша по умолчанию: F3

FILE

FILE -- Изменить/вывести текущий исходный текст

Синтаксис:


FILE [имя файла]

Комментарии:

Если имя файла указано, этот файл становится текущим файлом и начало файла выводится в окне кода. Если имя не указано, выводится имя текущего файла (если он есть) с исходным текстом.

Команда FILE часто полезна при установке точки останова в строке, которая не ассоциирована ни с одним публичным символом. Используйте FILE, для вызова желаемого файла в окно кода, используйте команду SS для поиска определенной строки, переместите в нее курсор и введите BPX для установки точки останова.

Обратите внимание:

Для команды FILE доступны только файлы с исходным текстом, загруженные в дополнительную память (XMS) программой LDR.EXE.

Пример:


FILE MAIN.C

Если MAIN.C был загружен LDR.EXE, эта команда выводит его в окно кода, начиная со строки 1.

SS

SS -- Найти строку в текущем файле с исходным текстом

Синтаксис:


SS [номер-строки] ['строка']

номер-строки -- десятичное число
строка -- символьная строка, заключенная в кавычки. Кавычки могут быть как одиночными так и двойными.

Комментарии:

Команда SS ищет в текущем файле с исходным текстом указанную символьную подстроку. Если имеется соответствие, строка, в которой была найдена подстрока будет выведена как верхняя строка в окне кода.

Поиск начинается с указанного номера строки. Если номер строки не указан, поиск начинается с верхней строки, отображаемой в окне кода.

Если параметры не указаны, продолжается поиск предыдущей указанной строки.

Обратите внимание:

Окно кода должно быть видимо и быть в режиме исходного текста до использования команды SS.

Пример:


SS 1 'if (i = = 3)'

В текущем файле с исходным текстом ищется, начиная со строки 1, подстрока 'if (i = = 3)'. Строка, содержащая следующее совпадение с подстрокой, становится верхней отображаемой строкой в окне кода.

РАЗДЕЛ III -- Поддерживаемые Возможности

ГЛАВА 6

6.1 Введение

Программный файл Soft-ICE (S-ICE.EXE) может быть загружен как загружаемый драйвер устройства в CONFIG.SYS или как программа из командной строки DOS. Для получения всей силы Soft-ICE, он должен быть загружен как драйвер устройства в CONFIG.SYS. Однако, могут иметься обстоятельства, когда вы можете захотеть запустить Soft-ICE из командной строки DOS или пакетного файла, типа:

* У вас нет расширенной памяти в вашей системе. Soft-ICE можно загрузить как загружаемый драйвер устройства, только если у вас есть расширенная память.
* Вы хотите занять НОЛЬ байт обычной памяти. При загрузке как драйвер устройства, Soft-ICE занимает приблизительно 2КБ обычной памяти.
* Вам только иногда необходимо использовать Soft-ICE и нет никаких других программ, использующих расширенную память.

В некоторых случаях вам могут быть нужны некоторые возможности, требующие загрузки Soft-ICE из CONFIG.SYS, но не нужно, чтобы Soft-ICE был постоянно резидентным. В этом случае Soft-ICE может быть загружен из CONFIG.SYS, чтобы зарезервировать расширенную память, и потом отключен переключателем /UN, пока не потребуется Soft-ICE. См. часть 6.3.1 для большей информации относительно переключателя /UN.

6.2 Загрузка из командной строки DOS

Вы НЕ можете активизировать все возможности Soft-ICE при загрузке из командной строки DOS. Если вы будете использовать Soft-ICE как автономный отладчик, рекомендуется загружать Soft-ICE из файла CONFIG.SYS.

Чтобы загрузить Soft-ICE из командной строки DOS, введите


S-ICE

В системах без расширенной памяти, Soft-ICE загружается в самые высокие возможные адреса памяти. Тогда память, используемая Soft-ICE "отрезается", становясь невидимой для программ DOS. Так как общая память, видимая для DOS и ее программ, уменьшается после загрузки Soft-ICE, рекомендуется загружать Soft-ICE до загрузки любых TSR-программ.

В системах с расширенной памятью вы можете загружать Soft-ICE из командной строки DOS, только если вы не используете расширенную память для чего-либо еще (напр. VDISK, CACHE, HIMEM...). Когда вы загружаете Soft-ICE из командной строки или из пакетного файла, Soft-ICE предупредит вас, выдав специальное сообщение. Это предупреждение только напоминает вам, что Soft-ICE перезапишет старшую область расширенной памяти, когда загрузится. Вы можете подавить это предупреждающее сообщение при помощи опции EXTENDED в файле конфигурации Soft-ICE. Для большей информации относительно опции EXTENDED, см. часть 6.4.1.

6.3 Загрузка Soft-ICE как Загружаемого Драйвера Устройства

Чтобы использовать все возможности Soft-ICE, вы должны загрузить Soft-ICE как загружаемый драйвер устройства в вашем файле CONFIG.SYS. При этом становятся доступными следующие возможности:

* Сосуществование с другим программным обеспечением, использующим расширенную память. Загрузка как драйвера устройства позволяет Soft-ICE управлять расширенной памятью, так что вы можете запускать Soft-ICE с программами, использующими расширенную память, такими как VDISK, CACHE и HIMEM.
* Отладка на уровне символов и исходного текста. Загрузка как драйвера устройства позволяет Soft-ICE разместить в расширенный памяти буфер для информации о символах и исходном тексте.
* Диапазоны обратной трассировки и команда SNAP. Загрузка как драйвера устройства позволяет Soft-ICE разместить в расширенный памяти буфер для информации обратной трассировки. Этот буфер также используется для команды Soft-ICE, SNAP.
* Активизация возможностей Soft-ICE по EMM 4.0
* Запуск Soft-ICE с MagicCV или MagicCVW

Заметьте:

Загруженный, как драйвер устройства в CONFIG.SYS, Soft-ICE резервирует старшую область расширенной памяти для себя и связанных с ним компонент, следовательно не может возникнуть конфликтов памяти. S-ICE.EXE должен быть загружен в CONFIG.SYS до любого другого драйвера, резервирующего расширенную память при загрузке (напр. VDISK.SYS, RAMDRIVE.SYS). Вообще Soft-ICE работает наилучшим образом, если он - первый загружаемый драйвер устройства в CONFIG.SYS.

6.3.1 Переключатели Загрузки Soft-ICE

После S-ICE.EXE в CONFIG.SYS может быть указан один или более переключателей загрузки. Эти переключатели позволяют вам указывать, как Soft-ICE будет резервировать расширенную память. Все переключатели должны начинаться символом / . Есть следующие переключатели загрузки:

* /EXT XXXX -- Сообщает S-ICE.EXE зарезервировать XXXX килобайт расширенной памяти для других программ DOS, использующих расширенную память (напр. VDISK, CACHE, HIMEM,...). Если переключатель

/EXT не указан, то расширенная память, не используемая Soft-ICE и связанными с ним компонентами будет оставлена, как стандартная расширенная память, но ее количество нельзя гарантировать. Переключатель /EXT полезен, потому что иногда трудно точно определить, сколько памяти используется Soft-ICE и связанными с ним компонентами. Использование переключателя /EXT будет гарантировать, что указанное количество будет доступно для других программ, использующих расширенную память.

* /SYM XXXX -- Сообщает S-ICE.EXE зарезервировать XXXX килобайт расширенной памяти для символов и исходного текста. Если XXXX не указано, то вся остающаяся расширенная память используется для символов. Должно быть зарезервировано достаточно памяти для вашего файла .SYM и всех исходных текстов. Для большей информации об использовании символов и исходного текста, см. главу 7.

* /TRA XXXX -- Сообщает S-ICE.EXE зарезервировать XXXX килобайт расширенной памяти для буфера истории обратной трассировки. Этот буфер используется для диапазонов обратной трассировки и для команды SNAP. Если XXXX не указано, то для буфера автоматически резервируется 10КБ расширенной памяти. Если вы вообще не хотите резервировать память для буфера обратной трассировки, используйте /TRA 0. Для большей информации об использовании диапазонов обратной трассировки, см. главу 9.

* /MCV XXX -- Сообщает S-ICE.EXE зарезервировать XXX килобайт расширенной памяти для MagicCV или MagicCVW. Минимальный объем расширенной памяти, который вы можете указать - 280КБ и максимум - 620КБ. Если XXX не указано, S-ICE.EXE зарезервирует остающуюся память, между 280КБ и 620КБ. См. главу 10 для большей информации относительно работы Soft-ICE с MagicCV или MagicCVW.

* /EMM XXXX -- Сообщает S-ICE.EXE преобразовать XXXX килобайт расширенной памяти в отображаемую память, соответствующую EMM 4.0. Если указано XXXX, то вся остающаяся память используется как отображаемая. См. главу 8 для большей информации Относительно поддержки отображаемой памяти.

* /UN -- Сообщает S-ICE.EXE перейти в защищенный режим, зарезервировать необходимую расширенную память, затем выйти из защищенного режима и выгрузиться. Этот переключатель должен использоваться, когда вы загружаете S-ICE.EXE как загружаемый драйвер устройства, но не хотите, чтобы ваша система оставалась в защищенном режиме. Этот переключатель зарезервирует память для Soft-ICE, и вы должны выполнить S-ICE.EXE из командной строки DOS, когда вы будете готовы использовать Soft-ICE.

Soft-ICE резервирует расширенную память в следующем порядке, независимо от порядка указанных переключателей:

Резервируется приблизительно 120КБ для S-ICE.EXE.
Резервируется память для переключателя /EXT, если он указан.
Резервируется память для переключателя /SYM, если он указан.
Резервируется память для переключателя /TRA, если он указан.
Если он не указан, по умолчанию резервируется 10КБ для буфера обратной трассировки.
Резервируется память для переключателя /MCV, если он указан.
Резервируется память для переключателя /EMM, если он указан.

Если при попытке зарезервировать память для переключателя в вышеупомянутой последовательности, доступной памяти не хватает, S-ICE.EXE делает следующее:

1. Остающаяся расширенная память резервируется для переключателя, обрабатываемого, когда не хватило памяти.
2. Память не будет резервироваться для оставшихся переключателей.

Заметьте:

Если присутствует переключатель /MCV или /EMM, резервируются дополнительные 64КБ расширенной памяти для буфера поддержки DMA.

Переключатели могут быть указаны в любом порядке после DEVICE = S-ICE.EXE. Пример:


DEVICE = S-ICE.EXE /TRA50 /EMM 500 /SYM 2048

Если доступны четыре мегабайта расширенной памяти, этот пример зарезервирует приблизительно 120КБ для Soft-ICE, 2 мегабайта для символов, 50КБ для буфера истории обратной трассировки, 500КБ для отображаемой памяти и оставит приблизительно 1,3 мегабайта для других программ расширенной памяти. Заметьте, что Soft-ICE загрузится в самую высокую область расширенной памяти, оставив оставшуюся память, начиная с 100000H (мегабайтовая отметка).

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