Чтобы можно было выполнять все необходимые для отладки операции и иметь доступ ко всем используемым в программе именам, программу надо скомпилировать в отладочном варианте. Для компиляции программы под отладку необходимо соответствующим образом настроить среду. Проще всего для этого установить необходимые параметры на панели инструментов WCE configuration, как показано на рис. 4.14.
Рис. 4.14. Панель инструментов WCE configuration.
В первом выпадающем списке этой панели задается имя активного проекта в заданном рабочем пространстве. Во втором выпадающем списке указывается устройство, для которой создается проект. В третьем списке можно выбрать одну из конфигураций, согласно которой будет происходить компиляция и сборка текущего проекта. Обычно в списке есть несколько предустановленных конфигураций, но разработчик может создать свою конфигурацию при помощи команды меню Build ?Configurations… ?Add… и настроить ее согласно своим требованиям при помощи команды меню Project ? Settings…. Четвертый список позволяет задать устройство, на котором будет запускаться скомпилированная программа.
РџР РМЕЧАНРР•. Для запуска программы РЅР° устройстве Pocket PC конфигурацию необходимо выбирать РёР· СЃРїРёСЃРєР° конфигураций для WCE ARM, Р° для запуска РЅР° эмуляторе – РёР· СЃРїРёСЃРєР° WCE x86. Такова суровая правда жизни – эмулятор для Pocket PC РЅРµ эмулирует машинные команды Рё РЅРµ РІ полной мере эмулирует архетиктуру микропроцессора ARM, РЅР° котором собрано устройство Pocket PC. Рто можно считать серьезным недостатком, поскольку невозможно установить РЅР° эмулятор бинарные файлы для Pocket PC.
Естественно, если вы хотите отлаживать свою программу, вам необходимо выбрать одну из отладочных конфигураций. К ним относятся Win32 (WCEx86) Debug и Win32 (WCE ARM) Debug. Точки останова (breakpoints) и пошаговое выполнение программы
Для того чтобы в нужном месте выполнить программу пошагово, необходимо на этой строке кода установить точку останова. Точка останова ставится либо при помощи команды InsertRemove Breakpoint из контекстного меню, либо при нажатии соответствующей кнопки панели инструментов WCE Configuration. Кроме этого, установку точки останова можно выполнить, нажав клавишу F9 на клавиатуре. В левом поле окна редактора кода напротив строки, в которой задана точка останова, появится маркер – кружок коричнево-красного цвета. Когда программа останавливается в заранее заданной точке, внутри этого кружка появляется желтая стрелка, как показано на рис. 4.15.
Рис. 4.15. Программа, остановленная в точке останова.
После останова программы в заданной точке можно начать пошаговое выполнение. Для этого можно воспользоваться командами меню Debug. Но гораздо удобнее пользоваться горячими клавишами, которые приведены в следующем списке.
? F11 – отладка с заходом в тело функций. Если очередной командой при пошаговом выполнении оказывается вызов функции, то следующий шаг будет сделан уже внутри тела этой функции.
? F10 – отладка без захода в тело функций. Если очередной командой оказывается вызов функции, то эта строка проходится так же точно, как и все остальные. Функция выполняется за один шаг.
? Shift+F11 – выход из тела функции. Если, войдя в функцию в процессе пошагового выполнения программы, разработчик увидел все, что ему было нужно, и необходимость дальше продолжать пошаговое выполнение внутри функции отпала, то это сочетание клавиш выполнит оставшиеся шаги за один раз и передаст управление следующему за функцией оператору.
? Ctrl+F10 – нажатие этого сочетания клавиш приведет к выполнению кода в обычном режиме и остановке в строке, в которой в редакторе кода находится в данный момент текстовый курсор.
Перемещение желтой стрелки по левому полю редактора кода указывает, на какую строку в исходном коде передается управление ходом выполнения программы.
Отображение и модификация значений переменных
Смысл пошагового выполнения программы не только в том, чтобы проследить, правильно ли передается управление ходом выполнения кода, но и в том, чтобы проверить, какие значения принимают те или иные переменные. Для этого среда eVC предоставляет в распоряжение программиста окна Watches и Variables.
В окне Variables отображаются локальные переменные той функции, в которой сейчас происходит выполнение программы (рис. 4.16).
Р РёСЃ.В 4.16. РћРєРЅРѕ Variables.
Содержимое РѕРєРЅР° может меняться РІ процессе выполнения программы. Рто РѕРєРЅРѕ позволяет как просматривать, так Рё редактировать значения переменных. РћРєРЅРѕ имеет три вкладки. РќР° вкладке Auto отображаются переменные, имеющие смысл РІ текущей Рё предыдущей строке РєРѕРґР°. РќР° вкладке Locals отображаются РІСЃРµ локальные переменные, которые активны РІ данный момент. РќР° вкладке This отображается информация РѕР±Рѕ всех переменных, именах Рё значениях, доступ Рє которым может быть осуществлен через указатель РЅР° переменную this.
? РќР° вкладке Auto отображаются также значения, возвращаемые функциями. Рти значения появляются РїСЂРё передаче управления инструкции, следующей Р·Р° вызовом функции.