S-ICE - часть 101
и исходные файлы под DOS или в DOS-совместимом режиме вашей
операционной системы.
ГЛАВА 13
13.1 Активизация Других Отладчиков
Soft-ICE работает с большинством других отладчиков, пользуясь преимуществами
отладочного прерывания семейства 8086 (INT 3). Большинство отладчиков
используют однобайтовую команду INT 3 (CCH) для выполнения точек останова.
Целевая команда заменяется на INT 3. Когда выполнение достигает целевого
адреса, управление передается обработчику INT 3 отладчика. Затем отладчик
заменяет (CCH) на первый байт первоначальной команды.
Когда выполняются точки останова Soft-ICE, в зависимости от команды ACTION,
может произойти одно из нескольких событий. Обычно при использовании Soft-ICE
с другим отладчиком, ACTION устанавливается на INT3. Когда выполняется условие
останова, Soft-ICE передает управление главному отладчику при помощи эмуляции
INT 3.
Некоторые отладчики могут работать неправильно при эмуляции INT 3. Для этих
отладчиков обеспечены две другие опции ACTION. Это - INT1 и NMI.
INT 1 - пошаговое прерывание семейства 8086. Большинство отладчиков будут
обрабатывать незапрашиваемый INT 1 как точку останова. NMI поддерживается
большинством отладчиков как средство выхода из зависания. Эти отладчики были
разработаны для аппаратных переключателей выхода, которые производили
немаскируемое прерывание. Когда ACTION установлено на NMI, Soft-ICE эмулирует
немаскируемое прерывание (Interrupt2). CODEVIEW работает лучше всего с ACTION,
установленным на NMI.
13.2 Основы Виртуальных Машин
Магия Soft-ICE стала возможной из-за возможностей виртуальной машины
процессора 80386. Soft-ICE выполняется в защищенном режиме 80386 и
управляет окружением DOS. Схема защиты 80386 дает Soft-ICE полный
контроль над окружением DOS, в то же время защищая его от "капризных"
программ.
Как генерируются точки останова Soft-ICE?
Soft-ICE использует три разных возможности 80386 для создания точек останова:
* Точки останова на ячейку памяти используют регистры