Выполнение программы по шагам
Выполнение по шагам - это простейший способ выполнения прог- раммы по элементарным фрагментам. Выбор команды 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.