Учебник хакера

         

Она описывает различия между Руководством


Введение

Эта записка к выпуску - приложение к Руководству Пользователя Soft-ICE 2.0.

Она описывает различия между Руководством Пользователя Soft-ICE 2.0 и выпуском

Soft-ICE 2.5. Когда эта записка сносится на расширения или изменения,

произведенные в возможностях, описанных в Руководстве Пользователя Soft-ICE

2.0, заголовки записки включают, в скобках, номер главы с соответствующей

информацией в Руководстве Пользователя Soft-ICE 2.0. Пожалуйста, прочтите и

Руководство Пользователя Soft-ICE 2.0 и эту записку к выпуску.

Описание Продукта (1.1)

К выпуску Soft-ICE 2.5 было добавлено много возможностей.

Принципиальные особенности - то, что Soft-ICE:

* интегрируется с BOUNDS-CHECKER.

* читает информацию о символах и исходных



текстах прямо из .EXE-заголовка языков

Microsoft и Borland.

* имеет поддержку оверлеев для Microsoft Link и

Pocket Soft .RTLink/Plus.

* может иметь две одновременно загруженные

символьные таблицы.

* обеспечивает дизассемблирование 32-битных команд

386 и просмотр 32-битных регистров.

* является совместимым с Microsoft C версии 6.

* обеспечивает дизассемблирование команд математического сопроцессора.

* позволяет загружать драйверы устройств и T&SR-программы в верхнюю

память

* включает несколько дополнительных команд:

BOUNDS, TABS, STACK, SERIAL.

* включает расширения к некоторым существующим

командам: R, FILE, SHOW, BPX, G.

* имеет поддержку VCPI.

* обеспечивает удаленную отладку

* имеет поддержку 80486.

* позволяет настраивать цвета окна Soft-ICE.

Дискеты (2.1)

В каталоге дискеты Soft-ICE 2.5 теперь будут находиться следующие

дополнительные файлы:

\NEW\LH.EXE

\NEW\LD.SYS

\NEW\ADDHI.EXE

\NEW\CE.EXE

\IOSIM.ASM

LH.EXE - утилита, загружающая T&SR'ы в верхнюю память. LD.SYS - утилита,

загружающая в верхнюю память драйверы DOS. ADDHI.EXE - утилита, добавляющая

верхнюю память к цепочке памяти DOS. CE.EXE - редактор CONFIG.SYS. IOSIM.ASM -

пример пользовательской точки останова. Он будет перехватывать точку останова



BPIO и записывать все значения, записанные или считанные из этого порта.

Загрузка Soft-ICE (2.2)

Следуйте инструкциям по установке из Руководства Пользователя

Soft-ICE 2.0, чтобы скопировать все файлы из корневой директории

дистрибутивной дискеты в ваш каталог Soft-ICE на жестком диске.

Кроме этого, скопируйте файлы из каталога /NEW дистрибутивной

дискеты в ваш каталог Soft-ICE на жестком диске; это - новые файлы

выпуска Soft-ICE 2.5.

Примечание :

Если вы до этого использовали

Soft-ICE 2.0 c опцией /EMM в

командной строке S-ICE в CONFIG.SYS,

вы должны запустить EMMSETUP. Так как

EMMSETUP записывает конфигурационную

информацию прямо в файл S-ICE.EXE, эта

информация перезаписалась, когда вы

загрузили Soft-ICE 2.5.

Использование Soft-ICE с BOUNDS-CHECKER (Новая возможность)

Введение

BOUNDS-CHECKER дает вам под MS-DOS защиту на уровне операционной системы защи-

щенного режима. Во время выполнения вашей программы BOUNDS-CHECKER защищает

код вашей программы и всю память вне программы. Когда происходит системный

вызов MS-DOS или BIOS или происходит прерывание, BOUNDS-CHECKER предотвращает

разрушение вашей программы системным программным обеспечением. Так что BOUNDS-

CHECKER может обнаруживать не только проблемы, вызванные вашей программой, он

также может определять, затирает ли T&SR или другая программа вашу.

Каждый раз после изменений в вашей программе, запустите BOUNDS-CHECKER

во время проверки нового кода. Ваша программа выполняется на полной скорости,

и, если вы случайно обратитесь к памяти вне границ программы, BOUNDS-CHECKER

"всплывет", выводя вызвавшую это исходную строку.

Использование Soft-ICE в комбинации с BOUNDS-CHECKER очень полезно,

когда ошибка, обнаруженная BOUNDS-CHECKER, не имеет явной причины. Вам

может понадобиться использовать Soft-ICE, чтобы просмотреть данные,

немного поотлаживать или повторно запустить программу с возможностями

обратной трассировки Soft-ICE, чтобы определить причину доступа за границы.



Загрузка BOUNDS-CHECKER для использования с Soft-ICE 2.5

Чтобы использовать BOUNDS-CHECKER с Soft-ICE 2.5, вы должны сначала:

1. Установите BOUNDS-CHECKER на ваш жесткий

диск, используя программу установки

BOUNDS-CHECKER (BCSETUP.EXE).

2. Замените строку DEVICE=d:\путь\BC.SYS в

вашем файле CONFIG.SYS на DEVICE=d:\путь\S-ICE.EXE.

Используйте те же параметры, что были в

командной строке BC.SYS. Кроме этого, вы

можете захотеть использовать параметр

/TRA nnnn, чтобы создать буфер обратной

трассировки больше чем 10КБ. Вы также можете

увеличить размер вашего параметра /SYM nnnn

чтобы обеспечить загрузку вашего исходного

текста и символов.

Примечания :

Вам не нужен переключатель /BC

в строке DEVICE=d:\путь\S-ICE.EXE

в CONFIG.SYS как указано в руководстве

по BOUNDS-CHECKER.

Вам необходимо иметь Soft-ICE версии 2.5

или большей и BOUNDS-CHECKER

версии 1.1 или большей для возможности

их сосуществования.

Запуск Soft-ICE 2.5 с BOUNDS-CHECKER

Запустите BOUNDS-CHECKER. Когда BOUNDSCHECKER активен, если вы хотите войти

в Soft-ICE, чтобы продолжить отладку, выберите в главном меню пункт Options,

затем выберите Soft-ICE. Чтобы повторно войти в BOUNDS-CHECKER, просто выйдите

из Soft-ICE при помощи "горячих клавиш" или команды X.

Если у вас недостаточно расширенной памяти, чтобы запустить BOUNDS-CHECKER,

вы можете сэкономить память, запустив BOUNDS-CHECKER с опцией /S в форме:

BC /S имя-программы

Это отменяет загрузку исходного текста в расширенную память для использования

в Soft-ICE. Недостаток - то, что Soft-ICE будет показывать номера строк, но не

будет показывать исходный текст.

Примечание :

Точки останова на диапазон и диапазоны обратной

трассировки Soft-ICE будут отключены во время

выполнения BOUNDS-CHECKER.

Команда Soft-ICE BOUNDS

Новая команда, BOUNDS, используется для включения и отключения из Soft-ICE

проверки границ. Это полезно если вы хотите остановиться чтобы

произвести отладку из сессии BOUNDS-CHECKER,

а затем вернуться к проверке границ, после того как вы отладили часть



программы.

Синтаксис команды BOUNDS:

BOUNDS [ON | OFF]

BOUNDS OFF выключает проверку границ, а BOUNDS ON обратно включает

проверку границ. Если параметры не указаны, то отображается текущее

состояние.

Поддержка Оверлеев (Новая возможность команд BPX и G)

Точка останова Soft-ICE BPX будет распространяться на оверлеи,

созданные Microsoft Linker или .RTLink/Plus.

Команды BPX и G позволяют вам использовать точки останова в оверлеях. Другие

типы точек останова не поддерживают оверлеи. Чтобы использовать BPX для

установки точки останова в оверлее, вы должны ввести:

BPX имя_подпрограммы

Другие формы BPX типа использования номеров исходных строк или установки BPX,

используя механизм point-and-shoot, не поддерживают точки останова в оверлеях.

32-разрядное Дизассемблирование и вывод Регистров (5.1 - команда R)

Soft-ICE теперь правильно выводит 32-разрядные команды 80386. Всегда

активизировано дизассемблирование. Чтобы разрешить вывод 32-разрядных

регистров в окне данных введите:

R 32

Эта команда выполняет переключение между 16 и 32-разрядными регистрами.

Команда STACK (Новая команда)

Soft-ICE 2.5 теперь позволяет вам выводить стек вызовов. Стек вызовов - это

список подпрограмм, которые вызывались, чтобы достигнуть текущего адреса.

Использование стека вызовов особенно полезно, когда Soft-ICE всплывает в

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

последнюю подпрограмму в вашей программе, у которой было управление до входа

в библиотеку, даже если программа находится на несколько уровней в глубине

библиотечных вызовов. Последний вызванный вход в стеке выводится первым в

окне команд.

Формат стека вызова:

процедура(смещение) [номер-строки]

Если вместо номера строки выводится "?", то для этой процедуры не была

доступна информация о номерах строк.

Команду STACK можно использовать, только если загружена символьная информация.

Если модуль, вход в который указан в стеке вызовов, не компилировался с



отладочной информацией, символьные метки выводиться не будут. Будет выводиться

только шестнадцатеричное смещение.

Команда SHOW (5.6)

Команда SHOW была улучшена, чтобы позволить вам сбрасывать на принтер большое

количество команд из буфера обратной трассировки.

Новый синтаксис для SHOW:

SHOW [B | начало] [L длина]

B - начать с начала буфера

начало - число команд от конца буфера

длина - число команд для вывода

Если SHOW используется с параметром длины, вы можете использовать CTRL P для

дампа дизассемблированного текста на принтер. Если вы не указали B или начало,

начинается вывод с текущей позиции.

Команда FILE (5.10)

Команда FILE была улучшена. Новый синтаксис для FILE:

FILE [название-файла |*]

FILE * выводит все исходные файлы, которые были загружены LDR.EXE в

расширенную память.

Чтобы переключиться на новый файл командой FILE, вам больше не нужно вводить

полный путь или расширение файла. Например, чтобы переключиться на рабочий

файл C:\SOURCE\FOO.C, вызовите Soft-ICE и введите FILE FOO.

Подготовка к Отладке с Символами или по Исходному Тексту(7.2)

Усовершенствования в обработке Символов/Исходных Текстов Microsoft и Turbo

В Soft-ICE 2.5 сделаны усовершенствования в обработке символов и исходных

текстов для пользователей языков Microsoft или Turbo.

Soft-ICE теперь может получать информацию о символах и исходных текстах

прямо из .EXE-файла, если в .EXE-файле есть отладочная информация,

совместимая с Microsoft CodeView или Turbo Debug. Если присутствуют отладочные

записи, то MSYM.EXE, .MAP-файл и .SYM-файл больше не нужны. Для Microsoft

скомпилируйте с /Zi и скомпонуйте с /CO. Для Turbo, скомпилируйте с /v и

скомпонуйте с /v.

Переключатель /CO заставляет компоновщик добавлять символьную информацию к

концу вашего .EXE-файла. Хотя это вызовет увеличение размеров вашего .EXE-

файла, это не повлияет на количество стандартной памяти, требуемой вашей

программе.

Примечание :

MSYM.EXE полезен, когда вы

используете транслятор, который



производит .MAP-файл, совместимый

с Microsoft Link, но не помещает

Microsoft-совместимую отладочную

информацию в .EXE-файл.

Загрузка Программ и Символьных Файлов (7.4 и новая команда TABLE)

Несколько Символьных Таблиц

Soft-ICE 2.5 теперь может обрабатывать две символьные таблицы. Это

полезно при отладке T&SR или загружаемого драйвера устройства DOS с

приложением или отладке оболочки с порожденным процессом.

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

используйте команду Soft-ICE TABLE. TABLE 1 использует символьную таблицу

номер один, TABLE 2 использует символьную таблицу номер 2.

Чтобы использовать две символьные таблицы, сделайте следующее:

1. Используйте LDR, чтобы загрузить вашу первую

программу и символьную информацию.

2. Вызовите Soft-ICE.

3. Введите "TABLE 2".

4. Выйдите из Soft-ICE.

5. Используйте LDR.EXE, чтобы загрузить вторую

символьную таблицу.

Теперь оба набора символьной информации загружены в расширенную память и

вы сейчас видите второй набор символьной информации. Используйте команды

TABLE 1 и TABLE 2, чтобы переключаться между наборами символьной информации,

которые вы сейчас видите.

Чтобы просмотреть символьную информацию вашей первой программы, вызовите

Soft-ICE, если это еще не сделано, и введите:

"TABLE 1"

Чтобы просмотреть символьную информацию вашей второй программы, вызовите

Soft-ICE, если это еще не сделано, и введите:

"TABLE 2"

Если вы вызываете TABLE без параметра, она сообщит вам, какой

набор символьной информации просматривается в настоящее время.

Примечание :

Когда вы перезагружаете таблицу 1, введя

TABLE 1, затем загрузив ее при помощи LDR,

таблица 2 приходит в негодность.

Управление Табуляцией (Новая команда TABS)

Soft-ICE 2.5 позволяет вам управлять размером знака табуляции в исходных

файлах. Предыдущие версии Soft-ICE принимали размер табуляции - 8. Синтаксис

команды TABS:

TABS [2 | 4 | 8]

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



Интересное использование команды TABS - возможность видеть больше 78 символов

исходного текста в одной строке. Для этого введите TABS 2.

Удаленная Отладка ( Новая возможность и новая команда SERIAL )

Soft-ICE способен выводить всю информации из окна команд в последовательный

порт. Комбинация "горячих клавиш" все еще доступна через клавиатуру системы,

но после первого вызова Soft-ICE, будут активны и системная и удаленная

клавиатуры. Чтобы активизировать удаленную отладку, используйте следующую

последовательность:

1) Установите скорость в бодах командой DOS

MODE на то же значение скорости, как и на

удаленном терминале.

2) Из Soft-ICE установите PRN на правильный последовательный

порт.

Например: PRN COM1

3) Из Soft-ICE введите "SERIAL ON". С этого момента,

вы можете вводить информацию с любой

клавиатуры, и вывод в окне команд будет

производиться на оба экрана.

4) Вероятно вы захотите избавиться от вашего окна кода,

данных и регистров, так как они не будут доступны

через удаленный терминал.

5) Если вы не хотите, чтобы экран Soft-ICE был

виден на главной машине, то включите

ALTSCR из Soft-ICE.

Поддержка 486 (Новая возможность)

У Soft-ICE 2.5 теперь есть поддержка 80486. У предыдущих версий ее не было

из-за аномалий с процессором 80486. Команды 486 будут также правильно

дизассемблироваться.

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

Поддержка цветов Soft-ICE

Soft-ICE 2.5 теперь позволяет вам указывать цвета экрана

для окон Soft-ICE.

Чтобы устанавливать цвета для различных окон в Soft-ICE вы должны

использовать директиву COLORS в файле S-ICE.DAT. Синтаксис команды

COLORS:

COLORS = "nnH,nnH,nnH,nnH,nnH,nnH,nnH,nnH,nnH,nnH,nnH,nnH"

Где nn - шестнадцатеричное число. Есть четыре набора из трех чисел. Каждая

группировка из трех воздействует на цвета определенного окна. Порядок для

четырех окон Soft-ICE следующий:

COLORS окно-регистров, окно-данных, окно-кода, окно-команд

Каждая группировка из трех шестнадцатеричных чисел управляет нормальным



атрибутом, атрибутом подсветки и атрибутом реверса для соответственного окна.

Фактическое число - значение, которое помещается в поле атрибута в

видеопамяти. Старший полубайт - фоновый цвет, а младший полубайт - цвет

символа. Цвета:

0 - черный 1 - синий 2 - зеленый

3 - синий 4 - красный 5 - сиреневый 6 - коричневый 7 - серый

8-0F - интенсивные версии вышеупомянутых.

Пример команды COLORS:

COLORS = "47H,4EH,7EH, 07H,0FH,70H, 17H,1FH,71H, 30H,3FH,71H"

Поддержка Отображаемой Памяти (8)

В Soft-ICE 2.5 был улучшен менеджер отображаемой памяти и предоставлены

утилиты для загрузки драйверов устройств и программ T&SR в расширенную

память. (Менеджер отображаемой памяти активизируется командой /EMM, когда

S-ICE.EXE указан в вашем CONFIG.SYS)

Изменения в EMMSETUP.EXE

Выполнение EMMSETUP.EXE (программа настройки памяти)

теперь требует параметра командной строки, который определяет название файла

с менеджером отображаемой памяти. Синтаксис для запуска EMMSETUP:

EMMSETUP название-файла

Параметр название-файла должен быть S-ICE.EXE. EMMSETUP также может

использоваться с MagicCV версии 3.0, в этом случае параметр должен быть

NUMEGA.SYS. Этот параметр требуется, потому что EMMSETUP записывает

конфигурационную информацию прямо в файл драйвера.

В EMMSETUP теперь есть опция выделения блоков памяти для загрузки драйверов

устройств и программ T&SR в верхнюю память. Вы должны выбрать эту возможность

в начальном экране EMMSETUP.

В конфигураторе карты памяти EMMSETUP теперь есть больше возможностей выбора.

Вы можете выбрать F для страничного блока, и H для областей верхней памяти.

Чтобы активизировать отображаемую память, у вас должно быть 4 и только 4

непрерывных F'а выше 640КБ. Чтобы загружать драйверы устройств или T&SR'ы в

верхнюю память, вы должны поместить H'и в НЕзанятые блоки памяти выше 640КБ.

Примечание :

Если вы хотите загружать драйверы устройств

и программы T&SR, но вам не нужна

EMM (отображаемая) память, удостоверьтесь,



что в карте памяти не присутствует ни

одного E или F'а.

Загрузка Резидентных Программ в Верхнюю Память (Новая возможность)

Утилита LH.EXE позволяет загружать некоторые резидентные программы в доступные

блоки памяти между 640КБ и 1 мегабайтом. Перед использованием LH.EXE вы должны

зарезервировать память для загрузки, используя EMMSETUP.EXE. Это делается

путем помещения 'H' в каждый блок памяти выше 640КБ, который вы хотите

предоставить для загрузки в верхнюю область памяти.

Чтобы загрузить резидентную программу в верхнюю память, введите:

LH название-программы [параметры программы]

Если найдется блок верхней памяти, достаточно большой, чтобы поместить

программу, программа будет в него загружена.

Если в командной строке LH не указано название-программы, будет выведена

карта памяти загружаемых драйверов устройств DOS и резидентных

программ, загруженных в верхнюю память, вместе с доступной памятью.

Примечание :

Вы не можете загружать все резидентные

программы через LH.EXE. Вы должны поэкспериментировать,

чтобы определить, какие программы могут

быть загружены в верхнюю память.

Загрузка Загружаемых Драйверов MS-DOS в Верхнюю Память (Новая возможность)

Утилита LD.SYS позволяет загружать определенные загружаемые драйверы устройств

MS-DOS в доступные блоки памяти между 640КБ и 1 мегабайтом. До использования

LD.SYS вы должны зарезервировать память для загрузки, используя EMMSETUP.EXE.

Это делается путем помещения 'H' в каждый блок памяти выше 640КБ, который вы

хотите предоставить для загрузки в верхнюю область памяти.

Чтобы загрузить загружаемый драйвер устройства MS-DOS в верхнюю память, вы

должны поместить следующую строку в ваш файл CONFIG.SYS:

DEVICE = \путь\LD.SYS название-устройства [параметры]

путь - Маршрут, содержащий LD.SYS

название-устройства - Название загружаемого драйвера

устройства DOS, включая путь

Если найдется блок верхней памяти, достаточно большой, чтобы поместить

драйвер устройства, программа будет в него загружена при загрузке системы.



Чтобы вывести карту памяти загружаемых драйверов устройств DOS и резидентных

программ, загруженных в верхнюю память, используйте утилиту LH без параметров.

Примечание :

Вы не можете загружать все загружаемые драйверы устройств

DOS в верхнюю память. Вы должны поэкспериментировать, чтобы

определить, какие драйверы могут быть загружены в верхнюю

память. Удостоверьтесь, что у вас есть загрузочный диск,

удобный для экспериментов.

Добавление Верхней Памяти к MS-DOS (Новая возможность)

Утилита ADDHI.EXE позволяет вам добавлять высокие области памяти к свободной

памяти DOS. Перед использованием ADDHI.EXE вы должны зарезервировать память

для добавления, используя EMMSETUP.EXE. Это делается путем помещения 'H' в

каждый блок памяти выше 640КБ, который вы хотите добавить.

Поддержка VCPI (Новая возможность)

VCPI (Интерфейс Виртуального Управления Программами) автоматически включается

при добавлении переключателя /EMM в строку S-ICE.EXE в CONFIG.SYS. Поддержка

VCPI позволяет вам выполнять приложения VCPI, использующие DOS-эктендеры, под

Soft-ICE. Это не позволяет вам отлаживать эти приложения в защищенном режиме.

Поддерживающие VCPI приложения включают Lotus 123 версии 3.0 и Autocad.

Поддержка VCPI НЕ дает возможность Soft-ICE выполняться с

другими управляющими программами VCPI, типа Quarterdeck QEMM

и Qualitas 386MAX.

Редактор CONFIG.SYS (Новая возможность)

Редактор конфигурации (CE.EXE) - текстовый редактор для изменения CONFIG.SYS

"на лету". Редактор конфигурации полезен, если вам нужно сделать временные

изменения в вашем CONFIG.SYS. Это особенно полезно, если вы предполагаете, что

драйвер в CONFIG.SYS может завешивать систему. Рекомендуется использовать

редактор конфигурации при установке Soft-ICE в первый раз в вашем CONFIG.SYS.

Установите редактор конфигурации, поместив CE.EXE в первую строку DEVICE = в

вашем файле CONFIG.SYS. Например:

DEVICE = /S-ICE /CE.EXE

При загрузке системы вы услышите звуковой сигнал. После сигнала у вас будет



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

клавишу, CE перехватит управление и позволит вам редактировать CONFIG.SYS.

После редактирования вашего файла CONFIG.SYS вы можете выйти из CE, нажав

одну из следующих клавиш:

F1 Нажатие F1 вызывает выход и изменяет

CONFIG.SYS только для этой загрузки.

Изменения - не постоянны.

F10 Нажатие F10 вызывает выход и изменяет

CONFIG.SYS для этой загрузки и

всех последующих загрузок.

ESC Нажатие ESC вызывает выход без изменений.

CE также может быть запущен из командной строки DOS. Это - для быстрого

просмотра или быстрого изменения в CONFIG.SYS. Просто введите CE из командной

строки DOS. Переключатель /Q (Тихий) отключает начальный звук, выводимый CE,

когда он установлен в CONFIG.SYS.

Команды Программного Интерфейса (Новая возможность)

Soft-ICE 2.5 содержит команды для управления Soft-ICE из программы MS-DOS.

Программа может пользоваться преимуществом мощных точек останова для

специальных отладочных работ или проектов по эмулированию аппаратных средств.

Все эти вызовы имеют следующую последовательность:

MOV AH,09

MOV AL,ПОДФУНКЦИЯ

MOV SI,'FG'

MOV DI,'JM'

INT 3

Доступные подфункции:

AL Описание значения

10H Вывести информацию в окне

Soft-ICE.

11H Выполнить команду Soft-ICE.

12H Получают информацию о точках останова.

13H Установить точку останова Soft-ICE.

14H Удалить точку останова Soft-ICE.

Следующие параграфы дают более детальную информацию об

этих подфункциях.

AL = 10H -- Вывести Информацию В окне Soft-ICE.

Это полезно для диагностических записей - особенно из подпрограмм прерываний

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

Входные параметры: DS:DX - > Z-строка текстовых символов

для вывода

Z-строка может быть максимум из 100 символов и может содержать символы

возврата каретки (0DH).

AL = 11H -- Выполнить команду Soft-ICE.

Это позволяет вам сгенерировать команду Soft-ICE из вашей программы. Это

используется для всех команд кроме точек останова.


Чтобы установить точки

останова Soft- ICE из вашей программы, смотрите AL = 13H ниже.

Входные параметры: DS:DX - > Z-строка, которая содержит

команду Soft-ICE.

Z-строка может быть максимум из 100 символов. Каждая команда Soft-ICE в строке

должна заканчиваться символом возврата каретки (0DH).

AL = 12H -- Получить информацию о точках останова.

Возвращает номер последней установленной точки останова и последней точки

останова, которая сработала.

Это полезно при установке точки останова с устройства ввода или при

выполнении эмуляции аппаратных средств.

Выходные данные : DH - номер входа последней

точки останова

DL - тип последней сработавшей точки останова

BH - номер входа последней установленной точки останова

BL - тип последней установленной точки останова

Номер входа - тот же самый, что выводится командой BL.

Типы: 0 - BPM (типы, использующие отладочные регистры)

1 - ввод/вывод

2 - INT

3 - BPX (BP стиля int 3)

4 - Зарезервировано

5 - Диапазон

AL = 13H -- Установить точку останова Soft-ICE.

Используйте эту команду для установки точек останова Soft-ICE из программы.

Входные параметры: DS:DX - указатель на структуру точки останова

Выходные данные: ax = код ошибки

bx = номер точки останова

; Выполняется очень небольшая проверка значений параметров, возвращаются

; следующие ошибки.

OK EQU 0

BP_TABLE_FULL EQU 3

MEM_LlM_ERR EQU 6

IO_LlM_ERR EQU 7

RANGE_LlM_ERR EQU 9

DUP_ERR EQU l6 ; повторяющаяся точка останова

; Структура точки останова

;bp_entry Struc

;bp_type Db?

;bp_addrl Dd?

;bp_addr2 Dd?

;bp_addr3 Dd?

;bp_mode Db?

;bp_mode2 Db?

;bp_size Db?

;bp_cnt Db?

;bp_state Db?

;bp_entry ends

; Допустимы следующие типы точек останова:

MEM_LOC equ 0 ;Точка останова на ячейку памяти (BPM).

MEM_RANGE equ 1 ;Точка останова на диапазон памяти (BPR).

IO equ 3 ;Точка останова на ввод/вывод (BPIO).

INT_BP equ 4 ;Точка останова на прерывание (BPINT).

X_BP equ 5 ;Точка останова на выполнение (BPX).

; Вот возможные режимы и размеры точек останова.



; Режимы точек останова

READ_MODE equ 01

WRITE_MODE equ 02

EX_MODE equ 04

; Размеры точек останова

BYT equ 0

WRD equ 1

DBL equ 3

; Следующие параграфы дают информацию о том, как заполнять структуру

; точки останова

; Для всех типов точек останова.

; Установка точек останова на ячейку памяти

bp_type = MEM_LOC

bp_addr1 = адрес точки останова

bp_mode = один из следующих:

READ_MODE

WRITE_MODE

EX_MODE или WRITE_MODE

EX_MODE (точка останова на выполнение)

bp_size = один из следующих:

BYT

WRD

DBL

bp_cnt = Число повторений события

до срабатывания точки останова

; Все неиспользуемые поля должны быть равны 0.

; Установка точек останова на диапазон памяти

bp_type = MEM_RANGE

bp_addrl = нижнее ограничение диапазона

bp_addr2 = верхнее ограничение диапазона

bp_mode = один из следующих:

READ_MODE

WRITE_MODE

READ_MODE или WRITE_MODE

bp_cnt = Число повторений события до срабатывания точки останова

; Все неиспользуемые поля должны быть равны 0.

; Установка точек останова на ввод/вывод

bp_type = ввод/вывод

word ptr bp_addr1 = адрес ввода/вывода

Bp_mode = один из следующих:

READ_MODE

WRITE_MODE

READ_MODE или WRITE_MODE

bp_cnt = Число повторений события до

срабатывания точки останова

; Все неиспользуемые поля должны быть равны 0.

; Установка точек останова на прерывание

bp_type = INT_BP

bp, addr1 = Прерывание #

bp, addr2 = Необязательное значение для проверки

bp, режим = регистр чтобы проверять

0 - без проверки значения

1 - проверка AL

2 - проверка AH

3 - проверка AX

;Установка точек останова на выполнение

bp_type = X_BP

bp, addr1 = адрес точки останова

bp, addr2 = номер оверлея (0 = корневой)

AL = 14H -- Удалить точку останова Soft-ICE.

Входные параметры: BX = номер точки останова

Выходные данные: BX = ???, когда установлена




Содержание раздела