Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 3 Pascal, лр1-9.doc
Скачиваний:
56
Добавлен:
22.05.2015
Размер:
654.85 Кб
Скачать

2.6 Трассировка программы

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

Например, чтобы выполнить трассировку кода в Примере 1, необходимо выбрать команду Run|Trace Into или нажать клавишу F7. Первое нажатие на F7 передает управление на оператор begin основной программы. Повторное нажатие F7 снова перемещает строку управления на оператор for. После этого нажатие клавиши F7 трассирует вызов функции Negate - строка выполнения перемещается на оператор begin в блоке функции. Если продолжать нажимать F7, строка выполнения перемещается по функции, а затем, когда дойдет до оператора end, возвращается к оператору вызова.

Формат программы влияет на поведение строки выполнения при трассировке, хотя и не в такой степени как при пошаговом выполнении. Если код сформатирован как в Примере 1, то трассировка оператора for приводит к выполнению 10 раз функции Negate. Если разбить оператор for на две строки, как в Примере 2, то трассировка оператора end функции возвращает строку выполнения ту строку основной программы, которая будет выполняться следующей.

Первые девять раз это снова будет вызов функции. В десятый раз строка выполнения перемещается на оператор end программы.

2.7 Выполнение больших фрагментов

Иногда, конечно, нежелательно выполнять по шагам всю программу только для того, чтобы добраться до того места, где возникает проблема. Отладчик позволяет выполнить сразу большой фрагмент программы до той точки, где необходимо начать выполнение по шагам.

Чтобы задать в программе точку, до которой программист хочет ее выполнить, а затем остановиться, нужно использовать команду Run|Go To Cursor (Выполнение| Выполнение до курсора) или клавишу F4. (То есть программист сообщает отладчику, что не хочет выполнять программу по шагам, пока не достигнет заданной точки.) Для этого необходимо установить курсор на той строке, где нужно возобновить управление отладкой, затем нажать клавишу F4. Причем, это можно сделать как в начале сеанса отладки, так и когда уже часть программ мы выполнена по шагам или протрассирована.

174

2.8 Повторное выполнение

В ходе сеанса отладки иногда желательно начать все сначала. Выбор команды Run|Reset Program или нажатие клавиши Ctrl+F2 приведет к полному сбросу, так что выполнение по шагам, или трассировка начнется в начале основной программы.

2.9 Отслеживание вывода программы

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

2.9.1 Переключение экранов

В любой момент сеанса отладки можно выполнять переключение экрана IDE и экрана пользователя. Чтобы вывести экран пользователя, необходимо нажать клавиши Alt+F5. Для возврата в IDE нажать любую клавишу.

2.9.2 Окно Output

IDE предусматривает для экрана пользователя окно, которое называется окном вывода. Выбор команды меню Debug|Output открывает (выводит на переднем плане) активное окно, содержащее вывод программы.

2.10 Просмотр значений

Выполнение программы по шагам или ее трассировка могут помочь найти ошибки в алгоритме программы, но обычно желательно также знать, что происходит на каждом шаге со значениями отдельных переменных. Например, при выполнении по шагам цикла for полезно знать значение переменной цикла. IDE имеет два инструментальных средства для проверки содержимого переменных программы: окно Watches (Просмотр) и диалоговое окно Evaluate and Modify (Вычисление и модификация).

3 Отладочные выражения, точки останова

3.1 Понятие отладочного выражения

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

3.2 Просмотр выражений

Часто программисту необходимо отслеживать значение переменной или выражения при выполнении программы по шагам. Тогда полезно открыть окно просмотра Watches. Это окно IDE показывает переменные и их значения в каждый конкретный момент.

175

Для открытия окна Watches нужно выбрать команду Window|Watch. IDE открывает активное окно Watches без активных записей. Если выбрать переменную для просмотра, IDE автоматически открывает окно Watches (если это еще не сделано).

3.2.1 Добавление просматриваемого выражения

Для добавления в окно Watches переменной необходимо выполнить команду Debug|Watch|Add Watch или нажать клавиши Ctrl+F7. Отладчик открывает диалоговое окно, запрашивающее тип просматриваемого выражения. По умолчанию выражением считается слово в позиции курсора в текущем окне редактирования. Просматриваемые выражения, которые отслеживались ранее, сохраняются в списке протокола.

Если окно Watches активно, можно удалить текущее выражение, нажав клавишу Del или Ctrl+Y. Команда Debug|Watch|Remove All Watches удалит все просматриваемые выражения.