Добавил:
ikot.chulakov@gmail.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по Delphi с готовыми программами / Лабораторная работа №13 Отладка программ.pdf
Скачиваний:
18
Добавлен:
12.07.2020
Размер:
556.27 Кб
Скачать

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Лабораторная работа №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

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