Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Визуальное программирование / Визуальное программирование-лекция-6.doc
Скачиваний:
45
Добавлен:
07.06.2015
Размер:
94.21 Кб
Скачать

Лекция № 6 delphi (конспекты лекций)

Отладка программ

  1. Виды ошибок

Среди ошибок, возникающих в ходе разработки и эксплуатации программ, можно выделить: синтаксические, логические и динамические. Синтаксические ошибки, связаны с неверным вводом команд в редакторе, неверной записью идентификаторов и некоторыми другими некорректными действиями. Синтаксические ошибки обычно фиксируются компилятором Delphi.

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

Динамические ошибки возникают при выполнении программы и являются следствием неправильной работы операторов, процедур, функций или методов программы, а также операционной системы. Обычно такого рода ошибки возникают при отдельных значениях переменных, констант и т.д., при других же значениях программа работает правильно. Динамические ошибки называют также ошибками времени выполнения (Runtime errors). В Delphi для обработки динамических ошибок вводится понятие исключительной ситуации. Исключительная ситуация состоит в нарушении условий выполнения программы, вызывающем прерывание или полное прекращение работы программы. Обработка исключительной ситуации состоит в нейтрализации динамической ошибки, вызвавшей ее.

  1. Синтаксические ошибки

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

  1. Логические ошибки

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

За наиболее часто встречающимися ошибками может следить сама программа. Для этого в настройках проекта (Project/Options) – на вкладке Compiler надо выполнить следующие действия.

  • На панели Code generation (Генерация машинного кода) сбросить флажок Optimization (Оптимизация). Когда компилятор создает оптимизированный код, он нередко вносит существенные улучшения в детали алгоритма, реализованного на Паскале. Например, могут не использоваться промежуточные переменные, в таком случае программист в процессе отладки не сумеет узнать значение этой переменной.

  • На панели Runtime errors (Ошибки времени выполнения) должны быть установлены флажки Range Checking (Контроль выхода индекса за границы массива), I/O Checking (Контроль ошибок водавывода) и Overflow checking (Контроль переполнения при целочисленных операциях).

  • На панели Debugging (Отладка) установить флажки Debug information (Добавление отладочной информации), Local symbols (Просмотр значений локальных переменных), Reference info (Просмотр структуры кода), Assertions (Включение процедуры Assert в машинный код) и Use Debug DCUs (Использование отладочных версий стандартных модулей библиотеки компонентов VCN). Процедура Assert выполняет отладочные функции. Отладочные версии стандартных модулей содержат дополнительные режимы проверки корректности работы с компонентами Delphi.

За более сложными ошибками разработчик должен следить из среды Delphi самостоятельно.

Наряду с просмотром исходного текста, для поиска логических ошибок можно использовать и другие приемы. В том числе инструментарий, применявшийся и Турбо Паскале 6.07.0. Основными инструментами отладки являются точки контрольного останова и окно наблюдения за переменными.

Точка останова задается с помощью опции ViewDebug windows Breakpoints. Окно наблюдения за переменными вызывается опцией ViewDebug Windows/Watches. Если программа запущена из среды Delphi, ее работу можно прервать в любой момент опцией RunProgram pause, или щелчком по соответствующей кнопке панели инструментов.

После контрольного останова в окне наблюдения отображаются текущие значения наблюдаемых объектов. Текущее значение любой переменной, также можно увидеть , если в окне редактора указать на нее мышью (окно редактора должно быть активным). Изменить текущее значение переменной можно с помощью окна Evaluate/Modify. Прервать выполнение приложения можно с помощью команды RunProgram reset (ВыполнениеПрервать выполнение).

При использовании контрольных точек и окна наблюдения за переменными программист может прослеживать работу программы в пошаговом режиме с помощью клавиш F7 (RunTrace Into) и F8 (Run/Step Over) (также можно применять команды Run/Trace to Next Source Line и Run/Run to Cursor).