
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Лабораторная работа №13 Отладка программ
Введение
В лабораторной работе рассмотрены основные возможности отладчика Delphi. Рассмотрены примеры применения точек останова, окна наблюдения, окна
Evaluate/Modify.
Отладка программ
В Delphi имеется мощный встроенный отладчик, значительно упрощающий отладку программ. Основными инструментами отладки являются точки контрольного останова и окно наблюдения за переменными.
Прерывание работы программы
Если программа запущена из среды Delphi, ее работу можно прервать в любой момент с помощью клавиш <Ctrl>+<F2>, кнопки или команды Run ► Program pause.
Трассировка программы
Трассировкой программы называется пошаговое выполнение программы. При трассировке остановка программы происходит после выполнения каждого оператора (строки). При этом управление получает среда Delphi, а в окне наблюдения отражается текущее значение наблюдаемых переменных и/или выражений.
Трассировку программы можно выполнять с помощью клавиш <F7> и <F8> или кнопок и
панели инструментов соответственно. При нажатии клавиши <F8> будут
выполнены запрограммированные в текущей строке действия, и работа программы прервется перед выполнением следующей строки текста. При нажатии клавиши <F7> среда выполняет те же действия, что и при нажатии клавиши <F8>, однако если в текущей строке содержится вызов подпрограммы пользователя, программа прервет свою работу перед выполнением первой исполняемого оператора этой подпрограммы, т.е. клавиша <F7> позволяет трассировать вызываемые подпрограммы. Текущая выполняемая строка операторов выделяется синим цветом кроме того, признаком текущей строки является особый символ в служебной зоне слева в окне редактора . После трассировки нужного фрагмента программы можно продолжить нормальную ее работу, нажав клавишу <F9> или кнопку
.
Точки останова
Точка контрольного останова определяет оператор в программе, перед выполнением которого программа прервет свою работу, и управление будет передано среде Delphi. Точка останова задается командой View ► Debug windows ► Breakponts. Контрольная точка останова выделяется по умолчанию красным цветом (Рисунок 1).

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Рисунок 1 – Вид окна редактора кода при срабатывании точки останова.
Окно точек останова (рисунок 2) содержит список всех установленных в проекте точек, перед выполнением которых происходит прекращение работы программы и управление получает среда Delphi.
Рисунок 2 – Окно списка точек останова
Чтобы добавить новую точку останова необходимо выбрать в контекстном меню команду Add. В этом случае появляется, окно (рисунок 3), с помощью которого можно задать параметры добавляемой точки.

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Рисунок 3 – Окно добавления точки останова
Окно приведенное на рисунке 3 содержит следующие поля:
−Filename – путь и имя файла (в момент появления окна это поле содержит имя открытого файла);
−Line number – номер строки от начала файла (в момент появления окна это поле содержит номер строки в которой находится курсор);
−Condition – в этом поле можно указать условие останова в виде, логического выражения;
−Pass count – в этом поле можно указать количество проходов, программы через контрольную точку без прерывания вычислений.
Совет: Для того чтобы установить/снять точку контрольного останова, достаточной щелкнуть мышью в служебной зоне слева от нужной строки или установив
вэту строку текстовый курсор и нажать клавишу <F5>.
ВDelphi версии 5, 6 и 7 с любой точкой можно связать одно или несколько действий. Для этого нужно активизировать окно точек останова, вызвать его контекстное меню (щелчок правой кнопкой мыши на точке останова) и выбрать команду Properties. В появившемся окне свойств точек останова необходимо нажать кнопку Advanced
, чтобы получить доступ к дополнительным свойствам (рисунок 4).

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Рисунок 4 – Дополнительные параметры точки останова
Внижней части окна появится группа Actions, с помощью которой определяются действия для точки останова, указанной в верхней части окна:
−Break – простой останов перед выполнением помеченного оператора;
−Ignore subsequent exceptions – если флажок установлен, игнорируются все возможные последующие исключения в текущем отладочном сеансе до очередной точки останова, в которой, возможно, это действие будет отменено;
−Handle subsequent exceptions – после установки этого флажка отменяется действие предыдущего флажка и возобновляется обработка возможных исключений;
−Log message – этот список позволяет выбрать произвольное сообщение, связанное с точкой останова;
−Eval expression – Позволяет вычислить некоторое выражение и поместить его результат в сообщение, выбранное в списке Log message.
Вкачестве примера рассмотрим отладку программы из листинга 1.
Листинг 1
program Project2; {$APPTYPE CONSOLE}
const n=10; var i:integer;
a:array [1..10] of Integer; begin
writeln('Demo program');

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
for i:=1 to n do a[i]:=random(50);
for i:=1 to n do writeln('a[',i,']=', a[i]);
readln;
end.
Установим точку останова как показано на рисунке 5.
Рисунок 5
Изменим, параметры этой точки останова так, чтобы она срабатывала только при значениях счетчика цикла больше 5. Для этого необходимо установить свойство Pass Count как на рисунке 6.
Рисунок 6
После запуска программы на выполнение отмеченная строка будет выполнена пять раз затем программа будет остановлена и управление будет передано отладчику.