Четвертый Borland C++ и его окружение

       

Меню Run


Меню Run (Выполнение) содержит несколько параметров для выполнения различных частей вашей программы. Поскольку эти параметры часто используются, им соответствуют функциональные клавиши.



Run F9 Выполнение
Go to cursor F4 Выполнение до курсора
Trace into F7 Трассировка
Step over F8 Шаг с пропуском
Execute to... Alt-F9 Выполнение до...
Until return Alt-F8 Выполнение до возврата
Animate... Автоматизировать
Back trace Alt-F4Обратная трассировка
Instruction trace Alt-F7 Трассировка инструкций
Arguments... Аргументы
Program reset Ctrl-F2 Сброс программы
Next Pending Status Следующий ждущий
Wait for Child Ожидание дочернего

Команда Run запускает вашу программу на выполнение. При наступлении одного из следующих событий управление передается отладчику.

  • ваша программа завершила выполнение;
  • обнаружена точка останова с действием прерывания;
  • прервали выполнение с помощью клавиши прерывания;
  • олнение программы остановлено из-за ошибки;
  • никли отмеченные исключительные ситуации Си или С++.
  • Команда Go to Cursor выполняет программу до той строки, где

    находится курсор (в текущем окне Module или области Code окна

    CPU). Если текущим окном является окно Module, курсор должен находиться на строке исходного кода внутри функции.

    Команда Trace Into выполняет одну строку исходного кода или

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

    или функции, то отладчик выполняет трассировку этой процедуры.

    Однако, если текущим окном является окно CPU, то выполняется одна

    машинная инструкция. Если текущим является окно Module, то выполняется строка исходного кода.

    Turbo Debugger интерпретирует методы объектов и функции-элементы классов, как все другие процедуры и функции. Клавиша F7

    позволяет трассировать их исходный код (если он доступен).

    Если вы выполняете эту команду для одной машинной инструкции, отладчик интерпретирует некоторые инструкции, как одну инструкцию, даже они приводят к выполнению нескольких инструкций.

    Это инструкции CALL, INT, LOOP, LOOPZ и LOOPNZ.




    Это справедливо и для префиксов REP, REPNZ или REPZ, за которыми следуют инструкции CMPS, CMPSW, LODSB, MOVS, MOVSB, MOVSW,

    SCAS, SCASB, SCASW, STOS, STOSB или STOSW.

    Команда Step Over выполняет одну строку исходного кода или

    машинную инструкцию, минуя трассировку вызываемой процедуры или

    функции. При этом обычно выполняется одна строка исходного текста

    программы. Если вы используете Step Over при расположении указателя на инструкции вызова, то Turbo Debugger полностью отрабатывает эту функции и переводит вас к оператору после вызова функции.

    Если вы выполняете эту команду для одной исходной строки,

    отладчик интерпретирует любой вызов процедуры или функции на этой

    строке, как часть самой строки, поэтому при завершении вы не окажетесь в начале одной из этих функций. Вместо этого вы перейдете

    к следующей строке текущей подпрограммы или к предыдущей программе, которая вызвала данную.

    Команда Run Step Over интерпретирует вызов метода объекта

    или функцию-элемент класса как один оператор, и выполняет для него такие же действия, как при любом другом вызове процедуры или

    функции.

    Команда Execute To выполняет вашу программу до адреса, который вы ввели в ответ на подсказку в диалоговом окне Enter Code

    Address to Execute To. Программа может не достичь этого адреса,

    если встречается точка останова или вы прерываете выполнение.

    Команда Until Return выполняет текущую процедуру или функцию, пока она не возвратит управление вызывающей программе. Это

    полезно использовать при двух обстоятельствах: если вы случайно

    вошли в процедуру или функцию, выполнение которой вас не интересует (с помощью команды Run Trace вместо команды Run Step), или

    когда вы определили, что текущая функция работает правильно, и не

    хотите медленно проходить по шагам ее оставшуюся часть.

    Команда Animate выполняет непрерывную последовательность команд Trace. Это позволяет вам наблюдать за текущим адресом в исходном коде и видеть изменение значений переменных. Прервать выполнение данной команды можно нажатием любой клавиши. После выбора команды Run Animate вам выведется подсказка для ввода значения



    интервала временной задержки между последовательными трассировками (в десятых долях секунды). По умолчанию используется значение

    3.

    Если вы выполняете трассировку программы (с помощью оперативных клавиш F7 или Alt-F7), то команда Back Trace изменяет порядок выполнения на обратный. Это средство удобно использовать,

    если вы проскочили место предполагаемой ошибки и хотите вернуться

    к этой точке. Данная команда позволяет вам выполнить программу "в

    обратном порядке" по шагам или до заданной (подсвеченной) точки в

    области инструкций окна Execution History. В окне CPU обратное

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

    Команда Instruction Trace выполняет одну инструкцию. Ее можно использовать, когда вы хотите трассировать прерывание, или

    когда вы находитесь в окне Module и хотите выполнять трассировку

    процедуры или функции, которая находится в модуле без отладочной

    информации (например, библиотечной подпрограмме). Так как вы

    больше не будете находиться в начале строки исходного теста, эта

    команда обычно переводит вас в окно CPU.

    Команда Arguments позволяет вам задать новые аргументы программы. Введите аргументы программы, как они задаются после имени

    программы в командной строке. После этого отладчик запрашивает,

    хотите ли вы перезагрузить отладчик с диска. Следует ответить

    "Yes".

    Команда Program Reset перезагружает отлаживаемую вами программу с диска. Ее можно использовать в следующих случаях:

  • да выполнение "зашло слишком далеко", то есть пройдено

    то место, где имеется ошибка;


  • да ваша программа завершила работу и вы хотите запустить ее снова;


  • если вы работаете в окне CPU, приостановили выполнение

    программы с помощью прерывания и хотите завершить ее и начать сначала (убедитесь однако, что вы не прервали выполнения программы в коде ядра Windows);


  • если вы хотите перезагрузить DLL, которая уже загружена,

    установите для нужной DLL в Yes параметр 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 вы можете обращаться к отладчику

    во время выполнения программы, не дожидаясь, пока она дойдет до

    точки останова. Эта команда полезна при отладке интерактивных

    программ (она позволяет, например, перейти в отладчик при ожидании программой ввода с клавиатуры).


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