Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отладчик_Delphi.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
591.36 Кб
Скачать

Отладчик Delphi Что такое отладка?

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

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

Например, рассмотрим фрагмент кода, выполняющий инициализацию массива 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> выполнить трассировку фрагмента.

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