Рис. 3.32. Установка контекстного меню.
В контекстном меню надо выполнить команду Toggle ? Breakpoint. В этом же меню можно выбрать, при каких типах исключительных ситуаций будет происходить автоматическая остановка выполнения приложения. Также можно щелкнуть на инструменте (3) из панели инструментов отладки или произвести двойной щелчок левой клавишей мыши на левом поле напротив строки кода.
О том, что точка останова установлена, можно судить по появлению точки красного цвета на левом поле и красной подсветки строки, на которой установлена точка останова.
На левом поле может появляться не только точка, но и стрелка. Цвет подсветки строки и стрелки может быть желтым (это показывает текущее место выполнения программы в пошаговом режиме) или зеленым (это показывает место входа в подпрограмму или в функцию).
5. Установить точку останова на строку кода А = 10. После того как необходимые точки останова будут расставлены, можно приступить к процессу отладки. Щелкнув на кнопке со стрелкой на панели инструментов или нажав клавишу F5, нужно запустить приложение в режиме отладки. Когда выполнение приложения дойдет до того места, где была установлена точка останова, программа остановится, в точке останова появится стрелка желтого цвета, а строка кода будет подсвечена желтым цветом. Пошаговое выполнение без входа в подпрограммы удобнее всего выполнять нажатием сочетания клавиш Shift+F8, а если нужно продолжать отладку и в подпрограммах – нажатием клавиши F8. Стоит проделать оба варианта трассировки, чтобы увидеть, как в подпрограммы передается управление.
6. Если первая по важности задача отладки – проследить логику передачи выполнения в коде, то вторая – отследить значение переменных. Существует несколько способов узнать значение переменной или состояние объекта во время пошагового выполнения. Проще всего использовать инструмент Watch Window. Для этого надо выполнить команду View ? Watch Window, которая выведет на экран окно отслеживания значений переменных Watches, а затем добавить в это окно необходимые переменные. Для добавления переменной к списку Watches, нужно выделить эту переменную объекта в окне редактора кода и выполнить команду контекстного меню Add Watch. На экран будет выведено окно добавления переменной (рис. 3.33).
Рис. 3.33. Окно добавления переменной к списку Watches.
Р’РќРРњРђРќРР•! Если Рє СЃРїРёСЃРєСѓ Watches добавляется переменная, которая является свойством объекта, то нужно указывать полное РёРјСЏ переменной СЃ префиксом имени объекта, например, Form1.Color. РљСЂРѕРјРµ переменных РІ РѕРєРЅРѕ Watches можно добавлять вычисляемые выражения. Р’ РѕРєРЅРµ мониторинга будет показано вычисленное значение этого выражения.
На рис. 3.34 показано окно Watches во время пошагового выполнения проекта.
Рис. 3.34. Активное окно Watches.
Также для того чтобы отследить изменение значения переменной, можно воспользоваться инструментом Quick Watch. Для этого надо установить текстовый курсор на имя переменной, и щелкнуть на соответствующем инструменте на отладочной панели инструментов. В результате на экран будет выведено информационное окно, описывающее состояние этой переменной (рис. 3.35).
Р РёСЃ.В 3.35. РћРєРЅРѕ Quick Watch.
Р, наконец, можно просто навести РєСѓСЂСЃРѕСЂ мыши РЅР° РёРјСЏ переменной. Если значение переменной РІ данный момент доступно, то РѕРЅРѕ будет отображено РЅР° всплывающем ярлычке (СЂРёСЃ.В 3.36).
Рис. 3.36. Получение значения переменной на ярлычке.
Нужно добавить в окно Watches все переменные, показанные на рис. 3.34, и еще раз осуществить пошаговое выполнение программы с заходом в подпрограммы.
РџР РМЕЧАНРР•. Среде требуется время (РІ РѕСЃРЅРѕРІРЅРѕРј это время РЅР° обмен данными СЃ эмулятором или устройством) РЅР° то, чтобы получить обновленные значения переменных. Поэтому, РєРѕРіРґР° РІ РѕРєРЅРµ Watches содержится РјРЅРѕРіРѕ переменных, выполнение каждого шага может сопровождаться значительной паузой.
Окно непосредственного выполнения (Immediate Window) – еще один удобный инструмент отладки в eVB. Оно выводится на экран командой меню View ? Immediate Window.
Поскольку Basic является интерпретируемым языком, то после выполнения любой строки РєРѕРґР° можно изменить значение любой доступной РІ контексте выполнения переменной или выполнить любую команду. Для этого надо ввести РІ РѕРєРЅРѕ Immediate соответствующую команду Рё нажать клавишу Enter, после чего команда будет выполнена. Также можно РІ этом РѕРєРЅРµ просмотреть значение любой переменной, выполнив команду? <РёРјСЏ переменной>, например? Р’. Чтобы посмотреть, как функционирует РѕРєРЅРѕ Immediate, нужно СЃРЅРѕРІР° запустить проект СЃ установленной точкой останова. РљРѕРіРґР° выполнение программы дойдет РґРѕ этой точки, следует вывести РЅР° экран РѕРєРЅРѕ Immediate, ввести РІ этом РѕРєРЅРµ команду MsgBox В«Рто сообщение РёР· РѕРєРЅР° непосредственного выполнения!В»,vbOKOnly Рё нажать клавишу Enter. РќР° экран эмулятора будет выведено соответствующее сообщение.