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

Контрольні питання

  1. Надати огляд процедури компіляції

  2. Привести характеристику способів виконання процедури компіляція

АУДИТОРНЕ ЗАНЯТТЯ

Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень

Тема 1.5: основи створення прикладних застосувань

Лекція №14 – Відладка прикладних застосувань

План заняття

  1. Огляд процедури відладки прикладних застосувань

  2. Характеристика процедури виконання відладки

Процесс исправления логических и динамических ошибок на­зывается отладкой программы. Целью отладки является выявление ошибки, которая возникает на этапе выполнения и приводит к не­верным результатам работы программы. Отладка позволяет вы­явить место возникновения ошибки и произвести ее последующее устранение. Интегрированная среда Delphi позволяет все это вы­полнять одновременно. К сожалению, даже если приложение от­компилировано и запущено на выполнение, это еще не означает, что оно правильно работает. В нем может быть множество логиче­ских ошибок, влияющих на результат работы. В таком случае удоб­но использовать точки останова. Точки останова используются, чтобы временно приостановить выполнение программы и сообщить компилятору о том, что нужно прервать работу при их достижении. Они применяются для проверки определенных участков кода, в которых предположительно может происходить ошибка.

Задавать точки останова можно различными способами. Пер­вый способ состоит в том, чтобы в окне редактора кода щелкнуть мышью на полоске левее кода требуемой строки, В результате строка окрасится в красный цвет, а левее нее появится красная точка (см. рис. 2.9). Другим способом является установка курсора в нужную строку и нажатие клавиши F5. Повторное нажатие кла­виши F5 на этой строке снимает точку останова. Снятие останова происходит и при щелчке мышью по красному кругу. Точки оста­нова, заданные такими способами, называются безусловными.

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

Кроме безусловных точек останова можно использовать так на­зываемые условные точки. Для того чтобы задать условную точку останова, нужно установить курсор на необходимую строку и вы­полнить команду Run \ Add Breakpoint \ Source Breakpoint. В резуль­тате появится окно Add Source Breakpoint (см. рис. 2.10), в котором нужно указать положение добавляемой точки и условие останова.

  • Filename - имя файла, в котором установлена точка останова;

  • Line number - номер строки от начала;

  • Condition - условие останова в виде логического выраже­ния (необязательно);

  • Pass count - количество проходов программы через контрольную точку без прерывания вычислений;

  • Group - имя группы, к которой относится данное прерывание.

В примере, представленном на рис. 2.10, останов произойдет в 32 строке, когда переменная count будет равна 10.

Список всех введенных описанным способом точек останова можно просмотреть в окне Breakpoint List, которое вызывается ко­мандой View | Debug Windows \ Breakpoints. Для добавления новой точки следует щелкнуть правой кнопкой мыши по окну и в контекст­ном меню выбрать пункт Add \ Source Breakpoint - на экране отобра­зится уже знакомое окно Add Source Breakpoint (см. рис. 2.10).

Редактирование установленных точек останова может произ­водиться с помощью окна Source Breakpoints Properties, которое в точности повторяет окно точек останова. Отличия заключаются в названии окна и в том, что невозможно уже по­ставленную точку останова перенести в другой модуль и даже на другую строку. Другими словами, недоступны для редактирова­ния пункты Filename и Line number.

Чтобы продолжить работу приложения, после того как его вы­полнение было прервано в точке останова, необходимо нажать кнопку F9 либо выполнить команду Run \ Run. При этом про­грамма продолжит свое выполнение либо до конца, либо до сле­дующей точки останова. В дополнение к этому часто использует­ся так называемое пошаговое выполнение программы как после точки останова, так и с начала работы приложения. Пошаговое выполнение называется трассировкой. На каждом шаге трасси­ровки выполняется только одна строка программы. Для этого ис­пользуются некоторые команды меню Run:

Step Over - выполнение программного кода без захода в

подпрограммы («горячая» клавиша - F8);

  • Trace Into - трассировка с заходом в подпрограммы (F7);

  • Trace to Next Source Line - переход к следующей строке (Shift+F7);

Run to Cursor - переход к строке, на которой установлен

курсор (F4).

Точки останова и трассировка являются мощными средствами отладки. Используя их в комплексе с окном наблюдения Watch List (см. рис. 2.11), можно отслеживать значения переменных в процессе выполнения программы. Механизм работы прост: опре­деляется, где ошибка, затем в этом месте ставится точка останова, и все необходимые переменные заносятся в Watch List. После это­го посредством трассировки определяется, какие значения прини­мают наблюдаемые переменные в ходе последующего выполне­ния программы. Полученные данные анализируются, и, если не­обходимо, в код программы вносятся коррективы. Окно Watch List вызывается командой View \ Debug Windows j Watches.

На рис. 2.11 показано окно наблюдений. В нем находятся пара­метры Count (переменная) и Forml.Butl .Caption (свойство кнопки с именем Butl). Поместить параметры в это окно можно с помощью команды Run | Add Watch (Ctrl+F5), либо используя команду Add Watch локального меню окна Watch List (Ctrl+A).

Контекстное меню окна Watch List предоставляет возможность редактировать наблюдаемое выражение (команда Edit Watch). В результате откроется окно Watch Properties (см. рис. 2.12).

В поле Expression указывается имя любой переменной или вы­ражение, содержащее переменные, функции, константы. Поле Repeat count используется при наблюдении массивов и позволяет задавать число просматриваемых элементов массива. Поле Digits указывает число значащих разрядов чисел с плавающей точкой. Переключатель Enabled управляет (разрешает или запрещает) отображением значения параметра в окне Watch List. Другой пе­реключатель Allow Function Calls запрещает или разрешает отображать в окнеWatch List значения функций. Формат вывода зна­чений задается путем выбора одного из переключателей, распо­ложенных в нижней части окна:

■ Character - представляет величину в символьном виде (используется для символов и строк);

  • String - дает возможность просмотреть величины в виде строк, используется для символов, строк и дампов памяти Memory Dump (см. ниже);

  • Decimal - выводит величины в десятичной форме (для це­лых чисел);

  • Hexadecimal - представляет величины в шестнадцатерич-ной форме (для целых чисел);

  • Floating point - отображает от 2 до 18 значащих цифр (чис­ло цифр, задаваемое в поле Digits), по умолчанию 7.

  • Pointer - предоставляет возможность выводить значение указателя (для указателей);

  • Record/Structure - добавляет к значениям поля записи и их имена (для указателей, классов, величин типа записи);

  • Memory Dump - параметр рассматривается как последова­тельность байт.

По умолчанию выбран переключатель Default. В этом случае формат определяется автоматически.

При выборе команды меню Run \ Evaluate/Modify вызывается окно вычисления и модификации параметра Evaluate/Modify. В этом окне обеспечивается возможность не только просматривать, но и изменять значения переменных в процессе отладки приложения.

Вышеуказанное окно содержит такие поля:

Expression - имя переменной или вычисляемое выражение;

  • Result - результат вычисления;

  • New value - новое значение переменной, которое ей при-своится после нажатия кнопки Modify.

Кроме того, в окне вычисления и модификации представлены следующие кнопки:

  • Evaluate — вычисляет значение переменной или выражения, указанного в поле Expression;

  • Modify - присваивает вычисляемой переменной новое значение;

  • Watch - открывает окно Walch List;

  • Inspect - вызывает окно Inspect;

  • Help - предоставляет возможность использовать подсказку по данной теме.

Работа с окном Evaluate/Modify происходит следующим обра­зом. В коде программы перед интересующим выражением ставит­ся точка останова. Затем приложение запускается. При достиже­нии точки останова выполняется команда Run \ Evaluate/Modify. В поле Expression окна Evaluate/Modify вводится имя переменной или выражение, которое нужно вычислить. После чего нажимает­ся кнопка Evaluate, и значение переменной появляется в поле Result. Чтобы задать новое значение переменной необходимо за­писать его в поле New value, после чего нажать кнопку Modify. Изменение значений может быть полезно при выполнении боль­ших приложений, когда можно корректировать неправильно вы­числяемое значение переменной, для дальнейшего выполнения программы без се перезапуска.

Для прекращения процесса отладки достаточно вызвать ко­манду меню Run | Program Reset (Ctrl+F2).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]