ГЛАВА 10

 Использование Soft-ICE с MagicCV или MagicCVW
   10.1 Введение
   10.2 Запуск Soft-ICE с MagicCV или MagicCVW
   10.3 Специальные Соображения
   10.4 Команда Soft-ICE ACTION

     203


 10.1 Введение

MagicCV позволяет вам выполнять Microsoft CodeView в менее чем 8КБ
стандартной памяти на вашей ЭВМ 80386.

MagicCVW позволяет вам выполнять Microsoft CodeView для Windows в менее
чем 8КБ стандартной памяти на вашей ЭВМ 80386.

Использование Soft-ICE в комбинации с MagicCV или MagicCVW позволяет вам иметь
мощность Soft-ICE при удобстве использования знакомого вам продукта CodeView.

В оставшейся части этой главы, высказывания о MCV будут применимы как
к MagicCV, так и к MagicCVW, и высказывания о CV будут применимы как
к CodeView, так и к CodeView для Windows.


 10.2 Запуск Soft-ICE с MagicCV или MagicCVW

Чтобы использовать Soft-ICE 2.0 и MCV вместе, вы должны установить S-ICE.EXE
как загружаемый драйвер устройства. S-ICE.EXE поступает на дискете Soft-ICE.
S-ICE.EXE заменяет NUMEGA.SYS в CONFIG.SYS. Используйте переключатели /MCV,
/EMM и /EXT как при использовании только MagicCV или MagicCVW. Есть добавочные
переключатели, которые вы можете захотеть использовать с Soft-ICE. Обратитесь
к главе 6 для информации относительно этих переключателей.

Чтобы запустить MagicCV или MagicCVW, после того как Soft-ICE загружен,
обратитесь к вашему руководству по MagicCV или MagicCVW.

Примечания:
MagicCVW требует Soft-ICE версии 2.00 или выше.

MagicCV требует Soft-ICE версии 1.02 или выше. Драйверы S-ICE.SYS и
NUMEGA.SYS отправлялись с некоторыми версиями Soft-ICE. Драйверы
S-ICE и NUMEGA

     204

должны быть заменены S-ICE.EXE до того, как вы сможете запустить MagicCV
и Soft-ICE 2.0 вместе.


10.3 Специальные Соображения

Две Виртуальные Машины

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

Если вы вызываете Soft-ICE, когда выполняется целевая программа, все работает
как определено в руководстве по Soft-ICE. Если вы вызываете Soft-ICE когда
выполняется CV (обычно при выполнении останова), вы должны иметь в виду
несколько моментов:
    * Регистры являются регистрами CV и НЕ МОГУТ
       быть изменены.
    * Для удобства, команда Soft-ICE, MAP
       отображает карту памяти виртуальной машины
       целевой программы, а не карту памяти виртуальной
       машины CV. Высвеченная область в карте памяти
       может быть неправильна.
    * Любой вывод или модификация памяти происходит в
       виртуальной машине целевой программы.
    * У вас нет никакой видимости в виртуальной машине CV
       кроме вывода значений регистров.
       Не забудьте, что при вызове окна Soft-ICE,
       когда активен CV, значения регистров являются
       значениями регистров CV и не должны изменяться.
    * Когда активен CV, в окне Soft-ICE отключается покомандная и
       программная трассировка. Это - чтобы
       предотвратить беспорядок, потому что фактически
       трассироваться будет CV, а не целевая программа.

     205

       Если вы попытаетесь выполнить команду Soft-ICE
       Шаг (T) или Программный Шаг (P) когда активен CV,
       вы получите предупреждающее сообщение: "Функция
       не доступна в виртуальной машине CV". Чтобы
       вместо этого трассировать код целевой программы, вы
       можете выполнить одну из двух операций:
       * Использовать команду трассировки CV. Для этого выйдите
           из окна Soft-ICE, используя команду Soft-ICE X,
           затем сделайте один или более шагов CV, чтобы
           пройти через целевую программу.
       * Использовать Soft-ICE, чтобы пройти до адреса
           целевой программы, затем использовать команды
           Soft-ICE T или P чтобы пройти через вашу целевую
           программу. Для этого выйдите из окна Soft-ICE
           командой Soft-ICE X, затем нажимайте клавишу
           'F3' пока CV не перейдет в "смешанный режим". Это
           позволит вам видеть как исходные строки, так и
           адреса команд. Вызовите Soft-ICE. Если
           окно Soft-ICE - еще не в узком режиме,
           используйте команду Soft-ICE WIN, чтобы
           изменить размер окна. Переместите окно Soft-ICE
           так, чтобы вы могли видеть адреса команд
           в левой стороне экрана. Теперь вы
           можете использовать команду Soft-ICE G, чтобы
           перейти на один из адресов. Обязательно введите полный адрес,
           включая сегмент и смещение.
           Затем введите 'G' в окне CV. С этого момента,
           CV не активен, так что вы можете использовать
           команды Soft-ICE T или P для прохода через
           целевую программу.

 Команда CodeView SHELL

Если вы выполняете временный выход в DOS из виртуальной машины CodeView,
оболочка DOS - часть виртуальной машины. Из-за этого вы не должны запускать
TSR'ы, когда вы находитесь в оболочке DOS. Если вы это сделаете, когда вы
выйдете из CodeView, TSR исчезнет вместе с виртуальной машиной. Это -

     206

опасно, потому что любой невосстановленный вектор прерывания
может вызвать зависание вашей ЭВМ.

Переключатель CV /R

Soft-ICE пользуется преимуществами многих возможностей 80386, включающих
регистры отладки 80386. Это значит, что регистры отладки не доступны для CV,
так что вы не можете использовать переключатель CV /R при запуске с Soft-ICE.
Если вы используете переключатель /R, Soft-ICE выдаст вам общую ошибку защиты.
В этот момент вы можете нажать 'C', чтобы продолжить, затем повторно запустить
CV без переключателя /R и использовать точки останова Soft-ICE.

Переключатель CV /R работает, когда вы выполняете MCV без Soft-ICE.


10.4 Команда Soft-ICE ACTION

Команда ACTION предоставляет три различных метода активизации CV из точки
останова Soft-ICE. Лучший выбор действия - ACTION NMI. Если вы испытываете
проблемы с ACTION, установленным в NMI ( обычно потому что плата адаптера в
вашей системе использует NMI ), используйте ACTION INT1.



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


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