Отладка и профилирование кода в Mobile SMARTS
Отладка кода — это этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки.
Для оперативного проведения отладки в Mobile SMARTS применяется встроенный отладчик. Его использование позволяет избежать долгих поисков ошибок в конфигурации, вместо этого можно в режиме реального времени посмотреть, как меняются переменные, по какому пути выполняется программа, и при необходимости внести изменения.
Вызывается отладчик из панели управления Mobile SMARTS. Отладка возможна на клиенте для ПК, на клиенте для Android, а также на сервере Mobile SMARTS.
Кроме того, отладчик позволяет прямо в процессе отладки менять значения визуальных свойств действий. Изменения вступают в силу сразу же, нет нужды проводить обмен с сервером или перезапускать приложение. Это позволяет на лету отформатировать вывод информации на экран и проверить результат.
Профилирование кода предназначено для оптимизации скорости алгоритмов платформы Mobile SMARTS. В отличие от отладки, которая происходит в режиме реального времени и во время которой можно сразу вносить изменения в код и править ошибки, в процессе профилирования кода происходит только сбор временных характеристик выполнения различных частей алгоритма. Далее результат профилирования в виде отчета отправляется на сервер Mobile SMARTS, и на его основании можно делать выводы о блоках алгоритма, требующих временной оптимизации.
Отладка кода на эмуляторе
Эиулятор Mobile SMARTS — это программа, которую можно запустить на ПК, и которая выглядит точно так же, как клиент Клеверенса на ТСД. Таким образом вы можете протестировать все функции клиента, не имея реального терминала.
Отладка кода на эмуляторе возможна в двух р ежимах:
Обычная отладка
Данный режим, в отличие от режима быстрой отладки, позволяет выполнять пошаговое выполнение алгоритма, в том числе с применением точки останова, подсветку текущего действия, а также просмотр результата изменения визуальных свойств в режиме реального времени.
Запуск отладки
В панели управления доступны кнопки подключения и управления отладкой.
Изначально доступна только одна кнопка — подключиться к отладчику (можно воспользоваться клавишей F5). Выбираем пункт «Клиент для ПК».
После запуска на экране ПК появится окно эмулятора с надписью в заголовке окна «В отладке».
Если после запуска клиента для ПК в конфигурацию были внесены изменения, то появится окно,в котором можно выбрать, какую конфигурацию использовать для отладки:
Рекомендуется использовать конфигурацию из панели управления, либо перед подключением отладчика нажать кнопку «Обмен с сервером» в клиенте Mobile SMARTS для ПК.
После подключения в блоке управления отладчиком станут доступны кнопка «Пауза» (Ctrl+Alt+Pause). Нажатие этой кнопки приведёт к временной приостановке выполнения программы в эмуляторе.
Также станет доступна кнопка «Стоп» (Shift+F5), нажатие на которую остановит отладку.
Работа с отладчиком
У отладчика есть два режима работы:
-
Во время выполнения действий на клиенте для ПК отладчик самостоятельно останавливается только на визуальных дейст виях, требующих ввода данных или какой-либо реакции оператора, а остальные быстро пробегает.
-
Пошаговое выполнение алгоритма — применяется в случае, если необходимо посмотреть, по какому пути работает программа и как меняются значения переменных между визуальными действиями.
Для пошагового выполнения алгоритма удобно использовать точки останова. Выбираем в алгоритме действие, на котором программа должна остановиться и нажимаем кнопку «Точка останова» (F9). Рядом с именем выбранного действия появится красный кружок — значок точки останова. Теперь выполнение алгоритма под отладкой будет остановлено на этом действии.
Пошаговым выполнения алгоритма можно управлять с помощью кнопок управления отладкой. К ним относятся:
-
Кнопка «Шаг с заходом» (F11)
Если выполнение алгоритма остановлено на какой-либо операции Mobile SMARTS, то нажатие этой кнопки приведёт к тому, что будет выполнен вызов операции и отладка зайдёт внутрь. Это помогает отследить выполнение операций, встречающихся в алгоритме.
-
«Шаг без захода» (F10)
Если операция не нуждается в проверке, а интересует алгоритм, следующий за операцией, то после нажатия на эту кнопку операция будет выполнена без остановки и отладка перейдёт на следующее действие.
-
«Шаг с выходом» (Shift+F11)
Позволяет выйти из текущей операции, выполнив её алгоритм до конца.
Просмотр и изменение значений переменных
После запуска отладчика можно использовать его для просмотра значений переменных сессии.
При подключённой отладке панель управления подсвечивает красным цветом тип документа, в котором ведётся работа, и жёлтым цветом действие, которое в данный момент выполняется в клиенте Mobile SMARTS для ПК.
К примеру, посмотрим, какие значения принимает переменная количества товара (SelectedProduct.Quantity) во время работы программы.
Для просмотра значений переменных, в нижней панели выбираем вкладку «Сессия».
SelectedProduct нет среди переменных, товар ещё ни разу не сканировался.
После успешного сканирования товара SelectedProduct заполнен:
При нажатии на плюс SelectedProduct развернётся, и можно будет увидеть текущее значение SelectedProduct.Quantity (также его можно изменить вручную):
Ещё один способ посмотреть значение переменной — использовать вкладку нижней панели «Вычислить». Для этого необходимо в строке ввести переменную и нажать «Вычислить» или Enter.
Быстрая отладка
Быстрая отладка нужна для того, чтобы оперативно разобраться, почему какая-то определенная информация не выводится на экран. Данная информация выводится на экран при помощи шаблонов текстов и выражений, и благодаря быстрой отладке можно быстро найти ошибку в шаблоне или в выгруженных данных.
Эти функции доступны и в режиме полной отладки, но быструю можно запустить в любой момент. Данный режим лучше применять в тех случаях, когда не нужно отслеживать путь, по которому выполняется программа.
Запуск быстрой отладки
Запуск быстрой отладки производится из окна клиента Mobile SMARTS для ПК.
После выбора данного действия или нажатия кнопки F12 на экране появится окно быстрой отладки. В данном окне можно просмотреть информацию о данных в сессии и отследить значения интересующих переменных.
Отладка кода на терминале
Запуск отладки
Для того, чтобы производить отладку кода на Android-терминале, необходимо, чтобы ПК с менеджером баз и ТСД с рабочим приложением Mobile SMARTS были подключены к одной Wi-Fi сети.
Запуск отладки происходит в два этапа:
-
Подготовка к отладке мобильного устройства. Для этого необходимо в меню приложения открыть «Настройки» → «Отладка на устройстве» → «Включена».
В последнем окне будут указаны порт отладки и IP-адрес устройства. Эти данные будут использоваться при подключении к отладчику на ПК.
-
Запуск отладчика для клиента Android в панели управления.
Откроется окно, в котором необходимо ввести IP-адрес устройства, на котором будет происходить отладка, и адрес порта отладки (где брать эти данные, указано выше). Нажмите «ОК».
После всех вышеуказанных действий на мобильном устройстве в шапке приложения появится надпись «В отладке».
После подключения в блоке управления отладчиком на ПК станет доступна кнопка «Пауза» (Ctrl+Alt+Pause). Нажатие этой кнопки приведёт к временной приостановке выполнения программы в эмуляторе.
Также станет доступна кнопка «Стоп» (Shift+F5), нажатие на которую остановит отладку.
Работа с отладчиком
Как происходит работа с отладчиком, описано выше. Для Android-клиента все процессы аналогичны.
Отладка кода на сервере
Отладка кода на сервере позволяет отследить выполнение серверных операций в режиме реального времени, и, при необходимости, внести в них свои коррективы.
Запуск отладки
-
В настройках локального сервера выберите базу Mobile SMARTS, для которой будет происходить отладка, и установите флаг в пункте «Включить отладку серверных операций».
Сохраните внесенные изменения с помощью одноименной кнопки, после чего произойдет автоматический перезапуск службы Mobile SMARTS.
-
Запустить отладчик в панели управления Mobile SMARTS.
Откроется окно, в котором необходимо ввести порт для подключения к серверу. Нажмите «Подключиться».
Отладка кода на сервере
Управление отладкой кода осуществляется с помощью кнопок в панели управления (запуск, пауза, остановка, точки останова).
Более подробно о том, как происходит работа с отладчиком, описано выше. Для отладки серверных операций все процессы аналогичны.
Единовременно можно производить отладку кода только в одной операции. Все точки останова вне отлаживаемой операции будут автоматически проигнорированы, пока она не будет завершена.
Во время отладки следует помнить, что серверные операции могут блокировать выполнение других серверных операций, создавая очередь выполнения.
- «No» — текущая операция может выполняться параллельно с любыми другими операциями (нет ограничений).
- «Operation» — выполняется только одна операция данного типа (пока не выполнится эта операция, операции того же типа не выполняются)..
- «AllOperations» — выполняется только одна операция всех типов (пока не выполнится эта операция, все другие операции не выполняются).
Профилирование кода
Профилирование — это процесс сбора временных характеристик выполнения любой операции на ТСД. Позволяет проследить, сколько по времени занимает выполнение программных алгоритмов, чтобы при необходимости оптимизировать нужный блок кода для сокращения времени его выполнения.
Для того чтобы начать сбор временных логов, необходимо включить режим профилирования на устройстве. Для ТСД на разных ОС это делается разными способами.
Для ТСД на ОС Android
-
Откройте боковое м еню мобильного приложения Mobile SMARTS и выберите пункт «Настройки» → «Отладка на устройстве».
-
Включите профилирование на устройстве.
Для ТСД на ОС Win CE
Для того чтобы включить режим профилирования на таких ТСД, необходимо добавить в конфигурационный файл «MobileSMARTS.exe.config» (секция <appSettings>) следующие строки:
<add key="diagnosticsenabled" value="true" />
<add key="actionsprofilerenabled" value="true" />
Данный файл находится на устройстве в папке, в которую ранее был установлен клиент для Win CE. Наименование этой папки может отличаться в зависимости от модели ТСД (например, Application\ MobileSMARTS, Nand\ MobileSMARTS, Program Files\ MobileSMARTS и др.).
Что делать после того как вы включили профилирование на устройстве:
-
Выберите на ТСД операцию, скорость выполнения которой вы бы хотели оптимизировать.
-
Откройте готовый документ (или создайте новый), и начните его выполнение: сканируйте товар, вводите необходимые данные, выполняйте те действия, временные характеристики которых вы хотите получить. Для более точного результата и детального анализа рекомендуется повторять это действия несколько раз. Завершите документ.
-
На основании ваших действий будет сформирован отчет по профилированию, в котором будут отображены все временные характеристики выполнения операции. Его необходимо отправить на сервер Mobile SMARTS с помощью кнопки «Обмен с сервером» (или он отправится автоматически, если вы работаете в режиме онлайн).
-
Посмотреть все отчеты профилирования можно в панели управления Mobile SMARTS.
Один отчет формируется на основании работы с одним документом. При работе со следующим документом будет сформирован новый файл.
На основании отчета, исходя из зафиксированных минимальных, максимальных и средних времен выполнения каждого действия в алгоритме, вы можете обнаружить проблемные места и ошибки алгоритма.