Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
самраб программирование.doc
Скачиваний:
10
Добавлен:
12.11.2019
Размер:
5.85 Mб
Скачать
  1. Технологии программирования

    1. Верификация и отладка программы

По мнению известного специалиста в области программирования Э. Дейкстры "…если отладка – процесс устранения ошибок в программах, то программирование – процесс их внесения". Увы, написать сложную программу без ошибок практически невозможно. Процесс "доведения до ума" программы называется отладкой (debugging).

Интересно происхождение английского термина debug, буквально означающего "обезжучивание" (англ. bug означает "жук"). В 40-х гг. ХХ века во флоте США эксплуатировался компьютер Mark-1. Однажды машина вышла из строя по причине попадания самого настоящего жука в контакты одного из многих тысяч реле. Математик Г.М. Хоппер, разрабатывавшая программы для Mark-1, записала в журнале "Реле №70. Произведено обезжучивание". С тех пор термин debug прижился для обозначения процесса отладки.

Еще сравнительно недавно отладка программы была весьма трудоемким и утомительным делом. Работа с компиляторами таких языков, как C, Fortran или Clipper в ОС MS DOS выглядела следующим образом. Текст программы набирался в любом текстовом редакторе – от Word до блокнота. Далее запускался компилятор, которому на вход подавался файл с программой. Если компиляция проходила успешно, компилятор создавал так называемый объектный файл. Затем запускался линкер – программа, объединяющая код стандартных библиотек и код в объектном файле в окончательный exe-файл. Наконец, полученный exe-файл запускался на выполнение. Если в нем обнаруживалась ошибка, весь процесс надо было повторять заново.

  1. Интегрированная среда программирования

Резкому повышению производительности труда программистов способствовало появление интегрированных сред программирования (IDE, Integrated Development Environment). Delphi как раз и является такой средой. IDE объединяет редактор текста, компилятор, линкер, отладчик (рис. 13.1).

Рис. 2.1 - Структура IDE.

Самая интересная для нас часть IDE – отладчик (debugger). Он позволяет выполнять следующие действия:

  • просматривать значения переменных;

  • прерывать выполнение программы в заданной точке;

  • выполнять программу по шагам;

  • отслеживать вызовы процедур и функций.

Как это возможно? Ведь мы знаем, что не существует способа превратить exe-файл обратно в программу на Паскале. Дело в том, что компилятор со встроенным отладчиком записывает в EXE-файл «лишнюю» информацию – имена переменных, ссылки на строки в исходной программе и т.д. После окончательной отладки следует отключить генерацию отладочной информации и откомпилировать "чистую" программу. Если об этом забыть то, во-первых, бесполезно возрастет размер exe-файла, а во-вторых, злобным хакерам будет очень легко вскрыть разнообразные защиты, которые автор так долго и старательно создавал.

Режимы компиляции в пункте меню ProjectàOptionsàCompiler ().

Рис. 2.2 - Управление режимами компиляции в Delphi.

  1. Инструменты отладки программ

Важнейший инструмент отладки – точка прерывания (breakpoint). Когда программа в своей работе доходит до точки прерывания, ее выполнение временно прекращается. Пока программа остановлена, можно просмотреть и даже изменить значения переменных, а затем продолжить ее выполнение.

Точка прерывания ставится на строчку программы. В Delphi это делается клавишей F5. Строка, в которой установлена точка прерывания, в редакторе помечается красным цветом (Рис. 2 .3).

Бесполезно ставить точку останова на операторы END, VAR, CONST, TYPE, FUNCTION, PROCEDURE, UNIT – они не являются исполняемыми. Разумеется, не сработает и точка прерывания, стоящая внутри процедуры, если эта процедура ниоткуда не вызывается на выполнение.

Как только точка прерывания достигнута, можно просмотреть текущие значения переменных. А вот сам текст программы "на ходу" менять нельзя – если текст изменен, придется компилировать заново. Окно просмотра значений переменных вызывается клавишами Ctrl+F7 (Рис. 2 .4).

Рис. 2.3 - Точка прерывания.

В поле Expression можно вводить не только имя переменной, но и целое математическое выражение. Это позволяет использовать окно просмотра как мощный калькулятор.

Интересная возможность окна просмотра – изменение значения переменной. Если в процессе отладки установлено, что некоторая переменная получила неверное значение, то для продолжения работы программы можно ввести правильное значение в поле Modify и нажать кнопку Modify.

Рис. 2.4 - Окно просмотра значений переменных.

Кстати, а как продолжить выполнение программы, остановленной на точке останова? Очень просто – нажав F9. Для полного же прерывания выполнения программы служат клавиши Ctrl+F2.

Если в программе есть циклы, то отладка затрудняется – при каждой итерации придется нажимать Ctrl+F7, вводить имя переменной, и так не один десяток раз. Для удобства помимо обычного окна просмотра в Delphi предусмотрено и так называемое окно постоянного просмотра (вызывается клавишами Ctrl+Alt+W). В него вводятся (при помощи клавиши Insert) переменные и выражения, значения которых постоянно отображаются. Как только программа остановилась на точке останова, все значения уже на экране (Рис. 2 .5).

Рис. 2.5 - Окно постоянного просмотра.

А можно ли выполнять программу пошагово, по одной строке? Да, конечно. Для этого служат клавиши F4, F7 и F8. Клавиша F4 запускает программу до курсора, F7–с заходом в процедуры/функции, F8–без захода в процедуры/функции. Текущая выполняемая строка в программе отмечается синей полосой. Для сброса программы (досрочного прекращения ее работы) предназначена комбинация клавиш Ctrl+F2.