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


S-ICE - часть 92


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

обработки. Этот раздел опишет способы эффективного использования отладчиков.


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,



Начало  Назад  Вперед