Трассировка программы во многом аналогичная ее выполнению по
шагам. Единственное исключение состоит в том, что когда встреча-
ется оператор вызова процедуры или функции, при трассировке эти
процедуры и функции также выполняются по шагам, а при простом вы-
полнении по шагам управление возвращается вам после завершения
выполнения подпрограммы.
Например, чтобы выполнить трассировку кода в Примере 6.1,
загрузите файл, затем выберите команду Run│Trace Into или нажмите
клавишу F7. Когда вы в первый раз делаете это, управление переме-
щается на оператор begin основной программы. Повторное нажатие F7
снова перемещает строку управления на оператор for. После этого
нажатие клавиши F7 трассирует вызов функции Negate - строка вы-
полнения перемещается на оператор begin в блоке функции. Если вы
продолжаете нажимать F7, строка выполнения перемещается по функ-
ции, а затем, когда вы дойдете до оператора end, возвращается к
оператору вызова.
Формат вашей программы влияет на поведение строки выполнения
при трассировке, хотя и не в такой степени как при пошаговом вы-
полнении. Если код сформатирован как в Примере 6.1, то трассиров-
ка оператора for приводит к выполнению 10 раз функции Negate. Ес-
ли вы разобъете оператор for на две строки, как в Примере 6.2, то
трассировка оператора end функции возвращает строку выполнения ту
строку основной программы, которая будет выполняться следующей.
Первые девять раз это снова будет вызов функции. В десятый раз
строка выполнения перемещается на оператор end программы.