Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Отладка






 

Рассмотрим две процедуры:

 

procedure TForm1.AddNum;

Var

Value1, Value2, Total: integer;

begin

Value1: = StrToInt(Edit1.Text);

Value1: = StrToInt(Edit2.Text);

Label1: = StrToInt(Value1 + Value2);

end;

 

procedure TForm1.Button1Click;

begin

AddSum;

end;

 

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

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

Чтобы установить точку прерывания, щелкните на сером поле окна редактирования слева от текста программы (назовем это поле полоской) напротив той строки, на которой вы хотите установить точку прерывания. В данном случае это будет строка:

 

Valuel: = StrToInt (Editl.Text);

 

После этого строка должна выделиться красным цветом и большой красной точкой на полоске слева от этой строки, как показано на рис.6.10 (при условии, что вы используете установки среды по умолчанию).

По умолчанию, полоска (gutter) задается видимой, но она может быть отключена в странице Display (Монитор) диалогового окна Environment Options (Опции среды), если вы снимите флаг кнопки-переключателя с именем Visible Gutter (полоска видна). Если полоска не видна, то щелкните на первом символе той строки программы, в которой вы хотите установить точку прерывания, и строка будет высвечена красным.

Если вы устанавливаете точку прерывания на строке кода, которая была оптимизирована Delphi, на экране появится диалоговое окно предупреждения (Warning) с вопросом, будете ли вы продолжать дальше. Это же окно вы увидите, если будете устанавливать точку прерывания, например, в строке с объявлениями переменных Var. В некоторых случаях вам может понадобиться для исследования и отладки программы переменная, которая исключается при компиляции с оптимизацией. Вы можете отключить оптимизацию, для чего выполните команду View | Project Manager (Просмотр | Менеджер проекта) и в появившемся диалоговом окне Project Options (Опции проекта) выберите страницу Compiler (компилятор). Уберите флаг соответствующего переключателя в разделе Code Generation (Генерация кода) и оптимизация проводится не будет. Более подробно этот вопрос освящается в руководствах Delphi и во встроенной в Delphi справочной системе.

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

Выполните программу еще раз. Введите число 4 как Значение 1 и 5 как Значение 2, затем нажмите кнопку Сложение. Вслед за этим появится окно редактора кода, где будет отмечено местоположение точки прерывания, как показано на рис.6.11. Точка прерывания отмечена зеленым маркером на полоске, который означает то, что вы остановились в этой точке прерывания, а указывающая направо зеленая стрелка отмечает текущую строку программы. В данном случае, текущая строка должна быть строкой, в которой установлена точка прерывания. Эта строка еще не выполнялась. Другими словами, зеленая стрелка указывает на следующую, подлежащую выполнению строку.

Сделаем еще одно заключительное замечание относительно точек прерывания. Вы можете установить специальные точки прерывания, в которых программа будет останавливаться только при выполнении некоторого условия или на указанном шаге цикла. Точки останова этого типа могут быть очень полезны, если ошибка в вашей программе возникает только при определенных условиях или в середине очень большого цикла. Чтобы установить условие или номер шага цикла для точки прерывания, вам нужно воспользоваться командой меню Run | Add Breakpoint (Выполнить | Добавить точку прерывания), вызывающей диалоговое окно Edit Breakpoint (Редактирование точек прерывания). Поскольку сейчас мы не будем использовать такие точки прерывания, мы закончим на этом их обсуждение. За подробной информацией обращайтесь ко встроенной в Delphi справочной системе и к руководствам Delphi.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.