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

       ГЛАВА 6

 Опции Инициализации Soft-ICE

   6.1 Введение
   6.2 Загрузка из Командной Строки DOS
   6.3 Загрузка Soft-ICE как Загружаемого Драйвера Устройства
   6.3.1 Переключатели Загрузки Soft-ICE
   6.4 Файл Инициализации Soft-ICE, S-ICE.DAT
   6.4.1 Опции Конфигурации
   6.4.2 Назначения Функциональных Клавиш
   6.4.3 Последовательность Команд Инициализации

     165


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.

     166

Чтобы загрузить 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.

     167

    * Отладка на уровне символов и исходного текста.
        Загрузка как драйвера устройства позволяет 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,...). Если переключатель

     168

/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 килобайт расширенной памяти в отображаемую

     169

       память, соответствующую 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. Память не будет резервироваться для оставшихся
         переключателей.

     170

 Заметьте:
Если присутствует переключатель /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 (мегабайтовая отметка).


 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.

     171

Есть три категории команд, которые могут быть включены в файл
инициализации 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. Используйте этот переключатель если у
       вас один из таких видеоадаптеров. Заметьте, что

     172

       опция 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;"

     173

Это назначит команду 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

Пример файла инициализации включен в содержимое дистрибутивной
дискеты. Этот пример назначает функциональные клавиши так, что

     174

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



~~\ Перевел Сергей Середа, 1998, Кишинев 24-71-96, /~~
~~\ e-mail: serge_sereda@hotmail.com /~~


[   ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ   ]