Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Руководство по Borland Pascal.doc
Скачиваний:
78
Добавлен:
02.05.2014
Размер:
2.05 Mб
Скачать

Что такое шаг?

Когда вы отлаживаете программу, наименьшим выполняемым эле-

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

отладкой до уровня отдельной строки исходного кода программы. По-

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

торов Паскаля, вы не сможете отладить эти операторы индивидуаль-

но. С другой стороны, с целью отладки вы можете разбить оператор

на несколько строк, которые будут выполняться за один шаг.

Все выполнение в отладчике, включая выполнение по шагам,

трассировку и останов, основывается на строках. Подсвечивая стро-

ку, встроенный отладчик всегда сообщает вам, какую строку вы вы-

полняете следующей (строка выполнения). Строка выполнения выво-

дится цветом, отличным от нормального цвета. Благодаря этому вы

можете легко видеть, где находитесь.

Выполнение программы по шагам

Выполнение по шагам - это простейший способ выполнения прог-

раммы по элементарным фрагментам. Выбор команды Run|Step Over или

нажатие клавиши F8 вызывает выполнение отладчиком всего кода в

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

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

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

емый оператор.

Возьмем, например, следующий пример программы:

program StepTest;

function Negate(X: Integer): Integer;

begin

Negate := -X;

end;

var

I: Integer;

begin

for I := 1 to 10 do Writeln(Negate(I));

end.

Пример 6.1 Простая программа, выполняемая по шагам.

Если в окне редактирования вы выведите StepTest и нажмете

клавишу F8, то строка выполнения перемещается на оператор begin в

начале основного цикла, поскольку это первое, что выполняется в

программе. Второе нажатие клавиши F8 выполняет begin и перемещает

строку выполнения вниз до оператора for на следующей строке. Пос-

ле этого нажатие F8 вызывает выполнение всего цикла for; на экран

пользователя выводятся числа от -1 до -10, а строка выполнения

перемещается к end.

Хотя функция Negate вызывается 10 раз, строка выполнения ни-

когда на нее не перемещается. Выполнение по шагам позволяет от-

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

Выполнение по шагам вызывает выполнение всего цикла for сразу,

поэтому вы не сможете видеть изменения в ходе выполнения цикла.

Если вы хотите видеть подробности цикла, внесите в пример следую-

щее простое изменение.

begin

for I := 1 to 10 do

Writeln(Negate(I));

end.

Пример 6.2 Изменение формата кода для лучшего выполнения по

шагам.

Поскольку оператор Паскаля может занимать несколько строк,

такая программа будет в точности эквивалентна предыдущей версии,

а генерируемый код будет идентичен. Но поскольку оператор Writeln

теперь находится на отдельной строке, отладчик может интерпрети-

ровать его отдельно. Если теперь вы будете нажимать клавишу F8,

то увидите, что строка выполнения будет при выполнении цикла 10

раз возвращаться на Writeln.

Соседние файлы в папке Delphi