Четвертый 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.



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