Программирование >>  Перегруженные имена функций и идентификаторы 

1 ... 82 83 84 [ 85 ] 86 87 88 ... 210


Startup Option в диалоговом окне Load Module Source или DLL Symbols и сбросьте программу.

Если вы выбрали команду Program Reset и находитесь в окне Module или CPU, то отладчик устанавливает Instruction Pointer на

начало программы, но экран остается там, где вы были при выборе команды Program Reset. Такое поведение облегчает установку курсора на то место, где вы были, и выполнение программы до данной строки. Если вы выбрали команду Program Reset только потому, что зашли на один оператор дальше нужного места, вы можете переместить курсор в файле исходного кода вверх на несколько строк и нажать клавишу F4, чтобы выполнить программу до этого места.

Команда Next Pending Status (доступная при отладке в Windows NT) может использоваться при установке в Yes команды Run Wait for Child. Если Wait for Child установлена в No (и ваша программа при обращении к отладчику работает в фоновом режиме), то команду Next Pending Status можно использовать для получения сообщения о статусе программы. Чтобы указать на наличие такого сообщения, индикатор активности отладчика выводит PENDING.

Команду Wait for Child (которая используется исключительно отладчиком TD32 для отладки программ Windows NT) можно переключать в Yes и No. В состоянии No вы можете обращаться к отладчику во время выполнения программы, не дожидаясь, пока она дойдет до точки останова. Эта команда полезна при отладке интерактивных программ (она позволяет, например, перейти в отладчик при ожидании программой ввода с клавиатуры).

Прерывание выполнения программы

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

при отладке программ Windows используйте клавиши Ctrl+Alt+SysRq;

при отладке программ Windows 32s используйте клавиши Ctrl+Alt+F11;



при отладке программ Windows NT используйте клавишу F12;

при отладке программ DOS используйте клавиши Ctrl+Break.

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

Если при возврате в Turbo Debugger вы увидите окно CPU без соответствующих программе инструкций, то возможно вы находитесь в коде ядра Windows. При этом следует установить точку останова в том месте, где должна выполняться ваша программа. Затем выполните программу до точки останова (F9). После этого можно возобновить отладку. Находясь в ядре Windows, не следует пытаться выполнять программу по шагам или пытаться перезагрузить приложение. Это может привести к краху системы.

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

Каждую выполненную инструкцию 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 или параметра -к командной строки).

Область Keystroke Recording показывает причину передачи управления отладчику (например, точка останова) и текущий адрес программы с соответствующей строкой исходного кода или машинной инструкцией. Turbo Debugger регистрирует все нажимаемые вами клавиши и записывает их в файл XXXX.TDK, где XXXX - это имя отлаживаемой программы. Локальное меню этой области содержит команды Inspect и Keystroke Restore. По команде Inspect отладчик активизирует окно Model или CPU, в котором курсор позиционирован на ту строку, где нажата клавиша. Команда Keystroke Restore перезагружает программу и выполняет ее до строки, подсвеченной в области Keystroke Recording.



1 ... 82 83 84 [ 85 ] 86 87 88 ... 210

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика