Система программирования Турбо паскаль 7.0


Интегрированный отладчик


Интегрированная среда программирования Турбо Паскаль содержит мощный и эффективный набор средств для отладки создаваемых пользователем программ.

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

Допустим, что нам необходимо отладить некоторую программу, содержащую блок операторов:

                     ……

                     a := 1;

                     b := 2;

                     c := 1;

                     d := b * b – 4 * a * c;

                     e := (a + b + c) / d;

                     writeln(‘e = ’, e:8:3);

                     ……

 Отладку начинаем, нажимая клавишу [F7], или выбираем команду Trace into пункта Run главного меню ( сложные команды будем записывать в виде: Run/Trace into). Если  блок удален от начала программы, то нужно установить на него курсор                 (оператор  a:=1;) и нажать [F4]  (команда Run/ Go to cursor). При первоначальном обращении к отладке указанные действия вызывают компиляцию и прогон программы до интересующего нас блока, после чего компьютер переходит в режим ожидания. Последующие нажатия [F7] или [F8] (команда Run/Step over), если нас не интересует трассировка процедур, приведут к построчному выполнению программы. Выполняемая в данный момент строка подсвечивается голубым цветом. Для облегчения выполнения отладки рекомендуется на этом этапе работы в каждой строке размещать только один оператор. В рассматриваемом нами случае мы увидим, что при обработке пятой строки блока возникнет аварийный останов программы в связи с делением на ноль.

Сброс процесса отладки производится клавишами [Ctrl+ F2] (команда Run/Program reset).

Эффективность отладки многократно повышается благодаря возможности видеть, как меняются значения переменных после выполнения каждого оператора. Для этого включаем окно наблюдения командой Debug/Watch. Перед этим с помощью нажатия клавиш [Ctrl +F7] (команда Debug/Add watch) вызывается диалоговое окно для указания значений переменных или арифметических и логических выражений, которые нам необходимо наблюдать.


  При отладке очень удобно работать с многооконным экраном.  Для этого необходимо поочередно окнo редактора, окно наблюдения  и окно программы трансформировать и переместить в соответствующее место (см. параграф 2.3).
Возвращаясь к отладке нашего блока операторов, отметим, что введя в окно наблюдения переменные  d и e, уже после выполнения первых четырех строк блока (4 нажатия клавиши [F7]) мы получим d = 0. Таким образом, хотя программа еще не совершила “авост”, мы уже получим сигнал о том, что предстоит “деление на ноль” на следующем шаге трассировки.
Однако возможности отладки на этом еще не исчерпаны. Вызвав клавишами [Ctrl+ F4] (командa Debug/Evaluate/Modify), мы можем “заказать” новое модифицированное значение для переменной, из-за которой по нашему мнению происходит авост. В строке Expression следует ввести имя переменной (в нашем примере - это d). При этом в поле Rezult появится ее текущее значение. Затем в строке New value вводим новое значение этой переменной (например, d = 1). После нажатия [Enter] отладка благополучно продолжается дальше, перейдя теперь в область программы, расположенной ниже нашего блока. Отметим, что “горячие клавиши” [Ctrl+F4] можно использовать как встроенный в Турбо Паскаль микрокалькулятор.
Отладка больших и сложных программ вызывает необходимость контролировать значения  переменных сразу в нескольких различных фрагментах программы. Остальные участки при этом желательно прогонять быстро, без трассировки. Для этого с помощью клавиш [Ctrl+F8] (команда Debug/Add breakpoint) можно установить несколько так называемых контрольных точек (соответствующая строка будет выделена красным цветом). Чтобы снять контрольные точки, используются клавиши [Ctrl+F2]  (команда Run/Program reset).
Глава 3. Простейшие конструкции языка
                           Турбо Паскаль

Содержание раздела