Четвертый BORLAND С++ и его окружение


Обратное выполнение


Каждую выполненную инструкцию Turbo Debugger регистрирует в

протоколе выполнения (при трассировки программы). С помощью окна

протокола выполнения Execution History вы можете просмотреть выполненные инструкции и вернуться в нужную точку программы. Команда обратного выполнения Reverse Execute выполняется по клавишам

Alt+F4. Turbo Debugger может регистрировать около 400 инструкций.

Здесь действуют следующие правила:

  • Регистрируются только те инструкции, которые выполнены с

    помощью команды Trace Into (F7) или Instruction Trace

    (Alt+F7). Однако, если не выполняются отдельные инструкции

    (перечисленные ниже), то регистрируются также команды Step

    Over.

  • Инструкция INT приводит к стиранию протокола выполнения.

    Если вы не трассируете прерывание с помощью Alt+F7, то об ратное выполнение этой инструкции невозможно.

  • После выполнения команды Run или выполнения после прерыва ния протокол удаляется. (Регистрация начинается после во зобновления трассировки.)
  • При выполнении вызова функции без ее трассировки обратное

    выполнение за инструкцию после возврата невозможно.

  • Обратное выполнение инструкций работы с портами невозможно

    (отменить чтение и запись нельзя).

  • Невозможно также обратное выполнение вызываемого програм мой кода Windows (если только вы не находитесь в окне CPU

    и не отлаживаете DLL).

В окне CPU обратное выполнение доступно всегда, а для обратного выполнения исходного кода нужно установить Full History в On

(в меню Execution History). Меню Execution History содержит также

команды Inspect и Reverse Execute. Команда Inspect переводит вас

к команде, подсвеченной в области Instruction. Если это строка

исходного кода, она выводится в окне Module. При отсутствии исходного кода открывается окно CPU и подсвечивается инструкция в

области Code. Действие инструкций IN, INSB, INSW, OUT, OUTSB,

OUTSW отменить невозможно, поэтому их обратное выполнение может

давать побочные эффекты.

TD.EXE имеет в окне Execution History дополнительную область, позволяющую вам вернуться в нужную точку программы при

случайной потере протокола. Область Keystroke Recording в нижней

части этого окна активизируется при разрешении регистрации нажатий клавиш (это можно сделать с помощью TDINST или параметра -k

командной строки).

Область Keystroke Recording показывает причину передачи управления отладчику (например, точка останова) и текущий адрес

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

инструкцией. Turbo Debugger регистрирует все нажимаемые вами клавиши и записывает их в файл XXXX.TDK, где XXXX - это имя отлаживаемой программы. Локальное меню этой области содержит команды

Inspect и Keystroke Restore. По команде Inspect отладчик активизирует окно Model или CPU, в котором курсор позиционирован на ту

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

Keystroke Recording.




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



Книжный магазин