После того, как все синтаксические ошибки найдены и исправлены, разрабатываемая программа может давать неверные результаты. Это происходит из-за того, что в ней остались семантические ошибки, вызванные неправильным пониманием используемых операторов, процедур и функций, а иногда и неверным алгоритмом. Для их нахождения, как правило, используется вывод не только окончательных, но и промежуточных результатов. Поиск семантических ошибок может быть существенно облегчен если использовать возможности отладочного режима. Установка отладочного режима, выбор способа проведения отладки и определение перечня выводимой информации производится в пунктах главного меню Options, Debug и Run.
Для проведения отладки необходимо определить список контролируемых переменных и пометить строки, на которых будет приостанавливаться выполнение программы. Эти операции выполняются в пункте Debug главного меню. Помеченные строки выделяются цветом или яркостью фона, а имена переменных выводятся в окно наблюдений (Watches), куда впоследствии при выполнении программы под управлением отладчика будут выводиться их значения.
Определение способа проведения отладки — останов и вывод значений контролируемых переменных только в контрольных точках, останов программы после выполнения каждой строки, завершение отладки и так далее — производится в пункте Run. Перед выполнением отладки в интегрированной среде необходимо разрешить вывод отладочной информации. Для этого следует в меню пункта Options выбрать пункт Compiler и в открывшейся панели переключить ключ Debug information в положение включено. (После этого поле перед названием ключа будет помечено крестом). Во включенное положение надо установить и ключ Integrated, находящийся в панели Debugger, открывающейся при выборе пункта Debugger того же меню.
Затем устанавливаются точки останова программы и выбираются контролируемые переменные. Точкой останова может быть любая строка раздела операторов. Независимо от количества операторов в ней останов производится перед выполнением первого. Для установки точки останова необходимо переместить в строку курсор, а за тем в меню пункта Debug выбрать пункт Add Breakpoint (добавить точку останова) и в открывшемся окне Add breakpoint нажать кнопку ОК. Строка, перед выполнением которой будет приостанавливаться выполнение программы, выделится другим цветом. Для снятия точки останова необходимо в диалоговой панели Breakpoints, которая открывается при выборе пункта Breakpoints меню Debug, выбрать необходимую точку и последовательно нажать кнопки Delete и ОК.
Значения контролируемых переменных выводятся в окно наблюдений Watches основного экрана среды Turbo Pascal. Для занесения имени переменной в окно наблюдений необходимо перейти в меню Debug и выбрать пункт Add watch (добавить контролируемую переменную) и в появившемся окне ввода ввести имя контролируемой переменной. После нажатия кнопки OK вводимое имя добавляется к перечню наблюдаемых переменных. Если перед выбором пункта Debug курсор находился под именем переменной, которую требуется контролировать, то для занесения ее в окно наблюдений достаточно нажать кнопку ОК. Подобным образом последовательно в окно наблюдений вводятся имена всех переменных, значения которых требуется контролировать при отладке.
После определения всех точек останова и внесения в окно наблюдений списка всех контролируемых переменных программа должна быть откомпилирована. Для этого в меню Compile выбирается пункт Compile. После успешной компиляции необходимо нажать любую клавишу.
Отладка программы производится с помощью режимов меню Run. Выполнение отладки удобно начать с помощью режима пошаговой отладки Trace into (соответствует нажатию клавиши F7). При этом программа откомпилируется и произойдет останов в начале раздела операторов. Строка, содержащая первый Begin, будет выделена цветом. Для выполнения всех строк программы до первой точки останова необходимо нажать клавишу F4 (что соответствует режиму Goto cursor меню Run). Останов произойдет до выполнения первой контрольной точки. На экране в окне редактора данная строка будет выделена, а в окне наблюдений (Watches) будет выведен список контролируемых переменных с присвоенными им значениями. Для перехода к следующей точке останова надо снова нажать клавишу F4 и так далее. Если на участке между точками останова необходимо контролировать, как изменяются переменные после выполнения каждой строки, вместо F4 программа запускается на выполнение нажатием клавиш F7 или F8, что соответствует режимам Trace into и Step over меню Run.
Отличие режима Trace into от Step over заключается в том, что при использовании первого из них при вызове подпрограммы осуществляется трассировка внутри нее. Текст подпрограммы при этом выводится на основной экран среды Turbo Pascal вне зависимости от того расположен ли он в исходном файле или нет. При использовании режима Step over процедура выполняется за один шаг и ее текст на экран не выводится.
Необходимо отметить, что для вывода информации о локальных переменных необходимо установить переключатель Local symbols во включенное положение. Этот переключатель находится в подменю Compiler меню Options.
Сброс всех точек останова выполняется нажатием кнопок Clear all и OK диалоговой панели Breakpoints, появляющейся после выбора пункта Breakpoints меню Debug. После этого необходимо нажать клавиши Ctrl+F2 (что соответствует выполнению режима Program reset меню Run) для закрытия всех отладочных файлов и освобождения памяти.
Статьи к прочтению:
Паскаль с нуля [ч1]. Первая программа.
Похожие статьи:
-
Отладка и выполнение программы
После того, как программа набрана в виде текста в окне редактирования, ее необходимо откомпилировать, устранить синтаксические и семантические ошибки и…
-
Понятие о способах отладки программы.
Отладка программ – это не менее серьезный этап, чем их подготовка, что, к сожалению, нечасто учитывают начинающие программисты, воодушевленные успехом…