Точки остановки (точки прерывания) программы




Что такое отладка?

Успешное завершение процесса компиляции вовсе не означает, что в программе нет ошибок. Для того чтобы убедиться, что программа работает правильно нужно проверить ее работоспособность. Этот процесс называется тестированием программы.

Очень редко программа работает безошибочно или даже если ее работа безошибочна, то лишь на некотором ограниченном наборе данных. Это признаки того, что в программе есть алгоритмические ошибки. То есть ошибки в реализации исходного алгоритма не обязательно приводят к нарушению работоспособности приложения, но могут повлечь за собой выдачу неверных результатов или выполнение ошибочных действий.

Например, рассмотрим фрагмент кода, выполняющий инициализацию массива Arr:

Пример 1

 

В данном фрагменте допущена ошибка. Ошибка приводит к тому, что к концу цикла произойдет обращение к шестому элементу массива, что прведет к выходу за гранцы массива.

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

Основные виды ошибок

Ошибки, которые возникают программе обычно делят на три группы:

· синтаксические;

· ошибки времени выполнения;

· алгоритмические.

Синтакические ошибки (ошибки времени компиляции – Compile-time error) наиболее легко устранимы. эти ошибки обнаруживает сам компилятор, программисту лишь остается исправить их и поторно скомпилировать программу.

Ошибки времени выполнение (исключения – exception), тоже достаточно легко устранимы. Они проявляются при первых запусках программы и во время тестирования.

При врзникновении ошибки программе, запущенной из Delphi, среда разработки прерывает работу программы. Далее на рис. 1 приеден пример сообщения об ошибке при попытке открыть несуществующий файл:

 

 

Рис. 1 – Сообщение об ошибке при запуске из Delphi

 

После озникновения ошибки программист может

· прервать программу (Run/ Program Reset)

· продолжить ее выполнения по шагам, наблюдая результат выполнения каждой инструкции (Run/ Step).

С алгоритмическими ошибками дело обстоит иначе. Компиляция программы завершается успешно, но при анализе результатов оказывается, что они неверны. Для устранения ошибки помогает отладчик.

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

 

ОТЛАДЧИК DELPHI

Трассировка программы

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

Однако в случае неправильной работы программы возникает необходимость видеть реальный порядок инструкций. Это можно сделать, выполнив трассировку программы. Трассировка – это процесс выполнения программы по шагам (step-by-step), инструкция за инструкцией. Во время трассировки программист дает команду: выполнить очередную инструкцию.

Delphi обеспечивает два режима трассировки: без захода в процедуру (Step over) и с заходом в процедуру (Trace into). Режим трассировки без захода в процедуру выполняет трассировку только главной процедуры, при этом трассировка подпрограмм не выполняется, вся подпрограмма выполняется за один шаг. В режиме трассировки с заходом в процедуру выполняется трассировка всей программы, то есть по шагам выполняется не только главная программа, но и все подпрограммы.

Для начала трассировки необходимо выбрать из меню Run команду Step over или Trace into. в результате будет выделена первая инструкция программы. Для выполнения выделенной инструкции, необходимо из меню Run команду Step over (нажать клавишу <F8>) или Trace into (<F7>). После выполнения инструкции будет выделена следющая.

В любой момент можно завершить трассировку, и из меню Run выбрать Run cursor (или клавиша <F4>). Далее, нажимая клавишу <F7> или с<F8> выполнить трассировку фрагмента.

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

Точки остановки (точки прерывания) программы

Рассмотрим фрагмент программы:

Пример 2

В данном месте программы есть ошибка. чтобы перейти к выполнению это программы по шагам, в ней надо создать точку прерывания, встретив которую, программа прервет работу и временно передаст управление системе Delphi.

Точки прерывания(breakpoint) расставляются не в любой точке программы, а только там, где выполняются какие-то действия. Такие строки помечены на левом поле в редакторе синими круглыми маркерам, которые появляются после успешно выполненной компиляции. В нашем случае точку прерывания можно поставить в строке с оператором цикла. Эту операцию можно осуществить несколькими способами:

1. проставить курсор в нужной строке и нажать клавишу <F5>

2. щелчок мыши на синем маркере слева, который помечает ту инструкцию программы, перед которой нужно расположить точку остановки. При этом соответствующая строка выделяется красным цветом.

3. Выбрать из меню Run команду Add Breakpoint (Добавить точку остановки), затем из меню следующего уровня выбрать Source Breakpoint.Далее должно открыться окно Add Source Breakpoint, в котором выводится нужная информация о добавляемой точке остановки, поле Line Number – номер строки программы, в которую добавляется точка остановки. После щелчка мыши точка прерывания добавляется в программу, и отмеченная точкой строка выделяется цветом (рис.2):

 

 

Поле ввода условия

 

Рис. 2 – Диалоговое окно Add Source Breakpoint

 

Снимается точка прерывания аналогичными способами.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: