 |
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Go to Cursor (Перейти к курсору) выполняет программу
до той строки, где находится курсор (в текущем окне Module (Мо-
дуль) или области Code окна CPU (Центральный процессор)). Если
текущим окном является окно Module, курсор должен находиться на
строке исходного кода внутри функции.
Команда Trace Into [F7]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Trace Into (Трассировка вглубь) выполняет одну строку
исходного кода или машинную инструкцию. Если текущая строка со-
держит вызов процедуры или функции, то Турбо отладчик выполняет
трассировку этой процедуры. Однако, если текущим окном является
окно CPU (Центральный процессор), то выполняется одна машинная
инструкция.
Турбо отладчик интерпретирует методы объектов и функции-эле-
менты классов, как все другие процедуры и функции. Клавиша F7
позволяет трассировать их исходный код (если он доступен).
Команда Step Over [F8]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Step Over (Шаг с пропуском) выполняет одну строку
исходного кода или машинную инструкцию, минуя трассировку вызыва-
емой процедуры или функции. При этом обычно выполняется одна
строка исходного текста программы.
Однако, если текущим окном является окно CPU (ЦП), то выпол-
няется только одна машинная инструкция.
Если вы выполняете эту команду для одной исходной строки,
Турбо отладчик интерпретирует любой вызов процедуры или функции
на этой строке, как часть самой строки, поэтому при завершении вы
не окажетесь в начале одной из этих функций. Вместо этого вы пе-
TDeb 3.0 #1-3 = 128 =
рейдете к следующей строке текущей подпрограммы или к предыдущей
программе, которая вызвала данную.
Если вы выполняете эту команду для одной машинной инструк-
ции, Турбо отладчик интерпретирует некоторые инструкции, как одну
инструкцию, даже они приводят к выполнению нескольких инструкций.
Приведем полный список инструкций, которые Турбо отладчик интерп-
ретирует, как одну инструкцию:
CALL Вызов подпрограммы (ближний или дальний).
INT Вызов прерывания.
LOOP Управление циклом (CX - счетчик).
LOOPZ Управление циклом (CX - счетчик).
LOOPNZ Управление циклом (CX - счетчик).
Шаг с пропуском выполняется также для префиксов REP, REPNZ
или REPZ, за которыми следуют инструкции CMPS, CMPSW, LODSB,
MOVS, MOVSB, MOVSW, SCAS, SCASB, SCASW, STOS, STOSB или STOSW.
Шаг с пропуском выполняется также для префиксов REP, REPNZ
или REPZ, за которыми следуют инструкции CMPS, CMPSW, LODSB,
MOVS, MOVSB, MOVSW, SCAS, SCASB, SCASW, STOS, STOSB или STOSW.
Команда RunіStep Over (ВыполнениеіШаг с пропуском) интерпре-
тирует вызов метода объекта или функцию-элемент класса как один
оператор, м выполняет для него шаг с пропуском, как при любом
другом вызове процедуры или функции.
Команда Execute To... [Alt-F9]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Execute To (Выполнение до...) выполняет вашу прог-
рамму до адреса, который вы ввели в ответ на подсказку в диалого-
вом окне. Программа может не достичь этого адреса, если встреча-
ется точка останова или вы прерываете выполнение.
Команда Until Return [Alt-F8]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Until Return (Выполнение до возврата управления) вы-
полняет текущую процедуру или функцию, пока она не возвратит уп-
равление вызывающей программе. Это полезно использовать при двух
обстоятельствах: если вы случайно вошли в процедуру или функцию,
выполнение которой вас не интересует (с помощью команды
RunіTrace (ВыполнениеіТрассировка) вместо команды RunіStep (Вы-
полнениеіШаг)), или когда вы определили, что текущая функция ра-
ботает правильно, и не хотите медленно проходить ее оставшуюся
часть.
Команда Animate...
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Animate... (Автоматизировать) выполняет непрерывную
TDeb 3.0 #1-3 = 129 =
последовательность команд Trace (Трассировка). Это позволяет вам
наблюдать за текущим адресом в исходном коде и видеть изменение
значений переменных. Прервать выполнение данной команды можно на-
жатием любой клавиши.
После выбора команды RunіAnimate (ВыполнениеіАвтоматизиро-
вать) вам выведется подсказка для ввода значения интервала вре-
менной задержки между последовательными трассировками (в десятых
долях секунды). По умолчанию используется значение 3.
Команда Back Trace
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Если вы выполняете трассировку программы (с помощью операти-
вных клавиш F7 или Alt-F7),то данная команда изменяет порядок вы-
полнения на обратный. Это средство удобно использовать, если вы
проскочили место предполагаемой ошибки и хотите вернуться к этой
точке. Данная команда позволяет вам выполнить программу "в обрат-
ном порядке" по шагам или до заданной (подсвеченной) точки в об-
ласти инструкций окна Execution History (Протокол выполнения).
Предупреждение: Здесь имеются некоторые ограничения.
См. раздел "Область инструкций".
Команда Instruction Trace [Alt-F7]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Instruction Trace (Трассировка инструкций) выполняет
одну инструкцию. Ее можно использовать, когда вы хотите трассиро-
вать прерывание, или когда вы находитесь в окне Module (Модуль) и
хотите выполнять трассировку процедуры или функции, которая нахо-
дится в модуле без отладочной информации (например, библиотечной
подпрограмме).
Так как вы больше не будете находиться в начале строки ис-
ходного теста, эта команда обычно переводит вас в окно CPU (Цент-
ральный процессор).
Команда Arguments...
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Данная команда позволяет вам задать новые аргументы програм-
мы. Более подробно это обсуждается далее.
Команда Program Reset [Ctrl-F2]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Program Reset (Сброс программы) перезагружает отла-
живаемую вами программу с диска. Ее можно использовать в следую-
щих случаях:
- когда выполнение "зашло слишком далеко", то есть пройдено
то место, где имеется ошибка;
TDeb 3.0 #1-3 = 130 =
- когда ваша программа завершила работу и вы хотите запус-
тить ее снова;
- если вы работаете в окне CPU, приостановили выполнение
программы с помощью Ctrl-Alt-SysRq и хотите завершить ее и
начать сначала.
- если вы уже загрузили прикладную программу, начали отладку
с одной или более библиотек динамической компоновки (DLL)
и хотите отладить эти DLL.
Если вы находитесь в окне Module или CPU, то отладчик уста-
навливает маркер текущей строки на начало программы, но экран ос-
тается там, где вы были при выборе команды Program Reset (Сброс
программы). Такое поведение облегчает установку курсора на то
место, где вы были, и выполнение программы до данной строки.
Если вы выбрали команду Program Reset только потому, что
зашли на один оператор дальше нужного места, вы можете перемес-
тить курсор в файле исходного кода вверх на несколько строк и на-
жать клавишу F4, чтобы выполнить программу до этого места. В про-
тивном случае вы можете (если с помощью окна ViewіExecution
History включено средство полного протоколирования Full History)
выбрать вместо команды Program Reset (Сброс программы) для возв-
рата к ранее выполненному коду команду RunіBack Trace (Выполнение
іОбратная трассировка).
TDeb 3.0 #1-3 = 131 =
Окно Execution History
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
В Турбо отладчике имеется специальное средство, которое на-
зывается протоколом выполнения. Это средство позволяет отслежи-
вать каждую выполняемую инструкцию (предполагается, что вы трас-
сируете код программы) и, кроме того, если вы хотите, фиксировать
нажимаемые вами для достижения данного места программы клавиши.
Вы можете просмотреть данные инструкции и выполнить их в обратном
порядке (отменить), чтобы вернуться в ту точку, где содержится
предполагаемая ошибка. Если у вас нет расширенной памяти, Турбо
отладчик может записывать около 400 инструкций. При наличии рас-
ширенной памяти он может записать примерно 3000 инструкций.
ХННExecution historyНННННННННННННН3ННН[ ][ ]НН»
|