Руководство по Soft-ICE (DOS) - 21
|
Смотрит геймер триллер. А там по тёмному коридору в страшном доме идёт девушка. Напряжение нарастает, играет тревожная музыка, и тут геймер не выдерживает:
- Save'ся, дура! Save'ся!!!
|
Команда XT пошагово проходит через буфер истории
обратной трассировки. Команда XP производит программные
шаги через буфер истории обратной трассировки.
Команда XG проходит программу до адреса в буфере истории
обратной трассировки.
8. Чтобы выйти из режима эмуляции трассировки, введите:
9. Для сброса буфера истории обратной трассировки, используйте
команду X.
9.3 Специальные Примечания
В режиме эмуляции трассировки большинство команд Soft-ICE работает как обычно,
включая вывод карты памяти и вывод и редактирование данных.
Существующие исключения:
1. Информация о регистрах не сохраняется в буфере истории обратной
трассировки, так что значения регистров не изменяются,
когда вы трассируете буфер, кроме значений CS и IP.
2. Команды, которые обычно вызывают выход из Soft-ICE, не
работают в режиме эмуляции трассировки. Это - X,
T, P, G, EXIT.
Когда вы внимательно просматриваете инструкции из буфера истории обратной
трассировки командами SHOW и TRACE, вы можете заметить странности в выполнении
инструкций. Они вызваны скачками в и вовне указанного диапазона. Они обычно
происходят при переходах, вызовах, возвратах и точках входа. Когда у вас
проблема с зависанием или другая трудная ошибка, требующая диапазонов обратной
трассировки, вы часто можете использовать очень большие диапазоны, чтобы
захватить проблемную область. Как только вы получите лучшее представление
об указанной проблемной области, вы перейдете к меньшим диапазонам.
Большие диапазоны обратной трассировки - очень медленные. Используя большие
диапазоны, вы обычно пытаетесь получить общую идею о том, где проблема. У
Soft-ICE есть специальный "ГРУБЫЙ" режим для обработки больших диапазонов. Это
ускоряет диапазоны в три или больше раз, но ограничивает количество инструкций
в буфере истории.
Грубый режим собирает только те инструкции, которые производят запись в память
в пределах указанного диапазона. При повторном проходе инструкций в режиме
эмуляции трассировки после "ГРУБОГО" диапазона вы заметите, что ход происходит
скачками вместо последовательного выполнения инструкций.
Грубые диапазоны работают лучше всего для больших областей и менее эффективны
для маленьких диапазонов.
Чтобы активизировать "ГРУБЫЙ" диапазон обратной трассировки, используйте
команду BPR с опцией TW вместо опции T. Например:
Для дальнейшей информации о диапазонах обратной трассировки см. описания
для команд:
SHOW, TRACE, XT, XP, XG, XRSET, BPR
|
ГЛАВА 10
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
должны быть заменены 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, а не целевая программа.
Если вы попытаетесь выполнить команду 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 исчезнет вместе с виртуальной машиной. Это -
опасно, потому что любой невосстановленный вектор прерывания
может вызвать зависание вашей ЭВМ.
Переключатель 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.
РАЗДЕЛ IV - Дополнительные Темы
ГЛАВА 11
11.1 Использование Soft-ICE с другими Отладчиками
Soft-ICE разрабатывался, чтобы "сотрудничать" с другими отладчиками. Каждый
отладчик предлагает разные возможности и, следовательно, требует специальной
обработки. Этот раздел опишет способы эффективного использования отладчиков.
11.1.1 Отладчики, Использующие DOS
Много отладчиков используют DOS и ROM BIOS, чтобы выполнять их экранный и
клавиатурный ввод/вывод. При использовании этих отладчиков с Soft-ICE (напр.,
DEBUG, SYMDEB и CODEVIEW) должны иметься ввиду определенные соображения, т.к.
DOS и ROM BIOS не полностью реентерабельны. Если останов происходит во время
исполнения кода DOS или BIOS, может возникнуть проблема повторной входимости.
Soft-ICE обеспечивает опциональное предупреждение о повторной входимости,
активируемое командой WARN. Когда включен режим WARN, Soft-ICE проверяет DOS и
ROM BIOS на повторную входимость до выполнения ACTION, активизирующего главный
отладчик. Когда обнаружена проблема повторной входимости, Soft-ICE выводит
предупреждающее сообщение и предлагает вам выбор : продолжить выполнение кода
или вернуться в Soft-ICE.
Обратите внимание, что сам Soft-ICE не использует вызовы DOS или ROM BIOS
в командах отладки. Это значит, что вы можете использовать Soft-ICE в
любое время, не волнуясь о проблемах повторной входимости.
Для большей информации о команде WARN, см. часть 5.4.
11.1.2 Команда ACTION с другими Отладчиками
Различные отладчики используют разные методы активизации. Для описания этих
методов см. часть 13.1.
Если вы хотите возвращаться к вашему отладчику после выполнения останова, вы
должны изменить ACTION (см. раздел 5.4) для работы с вашим отладчиком.
В большинстве случаев действие, которое должно выполняться после останова, -
INT3. Так DEBUG и SYMDEB будут работать лучше всего с ACTION, установленным
на INT3.
Если INT3 не работает с вашим отладчиком, попробуйте INT1 или NMI. CODEVIEW
работает лучше всего с ACTION, установленным на NMI.
11.1.3 Специальные Соображения
Когда установлена точка останова, вы должны быть осторожны, чтобы случайно
ее не вызвать. Так, если вы установите точку останова в памяти в 0:0,
затем используйте ваш отладчик для просмотра дампа памяти в 0:0, будет
вызван Soft-ICE. Если ACTION установлено на вызов вашего отладчика, тогда ваш
отладчик вызовет сам себя. Так как некоторые отладчики - нерентерабильны,
это может быть фатальной проблемой. Эта проблема может также возникнуть с
другими функциями отладки типа редактирования или дизассемблирования.
|