Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

1.3.7.1. Максимальный контроль ошибок

Максимальный контроль ошибок можно обеспечить настройкой компилятора. Командой Project/Options/Compilerвыбрать страницуCompiler, убрать флажокOptimization(оптимизация кода программы), установить флажки:Range checked(контроль выхода индексов за границы массивов),I/O Checking(контроль за вводом/выводом),Overflow Checking(контроль за переполнением при целочисленных операциях),Debug information(добавление отладочной информации),Local symbols(просмотр локальных переменных),Reference info(просмотр структуры кода),Assertions(использование процедурыAssert(п.1.7.9)),Use Debug DCUs(использование отладочных версий стандартных модулей биб­лиотеки компонентовVCL),Show Hints(вывод подсказок),Show warnings(вывод предупреждений при компиляции; очень полезно анализировать эти предупреждения, так как они могут показать скрытые логические ошибки, например, неиспользуемые переменные).

1.3.7.2. Оптимизация кода программы

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

Примерпрограммы до и после оптимизации:

FunctionSum:Integer;VarX,Y:Integer;//текст программы до оптимизации

Begin X:=strtoint(edit1.text)+strtoint(edit2.text); Result:=x; y:=2; End;

После оптимизации программа будет эквивалентна программе:

Function Sum:Integer;Begin Result:=strtoint(edit1.text)+strtoint(edit2.text);End;

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

1.3.7.3. Пошаговое выполнение программы

Пошаговое выполнение программы позволяет программисту контролировать результаты работы выполняемой команды. Для этого устанавливаетсяточка прерывания (точка останова, контрольная точка) щелчком мыши по синему круглому маркеру на левом поле окна редак­то­ра, и появляется круглый маркер красного цвета ‑ признак установ­ки точки прерывания. После запуска программы ее работа прервется на точке прерывания (визуально слева от строки появится зеленая правая стрелочка). Если навести маркер мыши на имя переменной, то появится в виде всплывающей подсказки ее имя, знак равно и текущее значение, что позволяет оценить правильность этого значения. Для перехода на следующую строку программы нажимается клавишаF8(кнопкаStep Over, или командаRun/Step Over), и все повторяется. Для прекращения работы всей программы выполняется командаRun/Program Reset (сброс программы) или^F2.

Если в выполняемом шаге используется подпрограмма, то она вы­пол­нится за один шаг. Если нужно войти внутрь нее для продолжения выполнения по шагам внутри этой подпрограммы, то следует вместоF8нажать клавишуF7или выполнить командуTrace into (войти внутрь). Для быстрого выхода из подпрограммы выполняется командаRun/Run Until Return(выполнять до выхода) илиShift+F8.

Установка точек прерывания по условию производится путем установки курсора на нужную строку и выполнением командыRun/Add Breakpoint/Source Breakpoint. Появится окноAdd Source Breakpointс полями:Condition(условие прерывания программы, например,J>44),Pass count(число проходов перед прерыванием, например: 100 ‑ прерывание наступит после выполнения этой строки 100 раз).

Объединение точек прерывания в группы производится путем указания имени группы в полеGroupокнаAdd Source Breakpoint, что позволяет выполнять схожие действия над группой точек прерывания.

Действия контрольной точки задаются в окнеAdd Source Breakpoint, которое вызывается кнопкойAdvanced(дополнительно) из окнаAdd Source Breakpoint. Окно имеет флажки:Break(прерывание),Ignore/Handle subsequent exceptions(отключение/включение всех после­дую­щих исключительных ситуаций),Enable/Disable Group(включе­ние/отключение группы точек).