Использование AppSalute Debugger при отладке

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск

Что такое debugger?

Debugger (он же отладчик) - это отдельное приложение, которое предназначено для поиска и локализации ошибок в работе приложения.

Зачем он нужен?

Это незаменимый инструмент в процессе отладки, ведь чаще всего нужно:

- Узнать текущее значение той или иной переменной.

- Выяснить по какому пути выполнялся код.

Что нужно сделать, чтобы начать пользоваться отладчиком?

Первоначально следует проверить настройки подключения к viewer, которые хранятся в теге [Game] в app.icf. Этот файл должен находится в корне директории с редактором.

Что я должен увидеть в этом файле?

Обязательным для работы является наличие двух строк в теге [Game]:

DebuggerIP="xxx.xxx.xxx.xxx"
DebuggerPort=5322

Где DebuggerIP - это IP адресс машины, на которой запущен отладчик. А DebuggerPort - порт подключения, который остаётся неизменным!

DebuggerIP - может принимать несколько значений:

  1. 127.0.0.1 - т.е localhost, что не позволит использовать отладчик на удалённом устройстве, но прекрасно подойдет, если Вы не знаете IP машины, за которой работаете.
  2. IP в локальной сети, который можно узнать у системного администратора. Этот является предпочтительным.

Что нужно сделать в SceneEditor, чтобы запустить отладчик?

Чтобы запустить режим отладки нужно нажать на кнопку в верхней панели.

Debug button.png

После чего откроется окно.

Debug lock.png

А в конткестном меню (вызывается нажатием ПКМ) появятся новые строки.

Context menu.png

Я запустил viewer, что делать дальше?

Нужно подключиться к "серверу", которым является Ваша рабочая машина с запущенным SceneEditor.exe.

Для этого нужно во viewer нажать F6.

Как узнать, что подключение успешно?

В окне отладки появится строка:

connection successful!

А за ней периодически будут появляться строки вида:

viewer pinged

Что я могу делать с помощью отладчика?

  • Первое и самое полезное - установка breakpoint.

Breakpoint - это остановка выполнения всей программы при определенных условиях. Пример: машина состояний перешла в другое состояние, переменная поменяла своё значение и т.д.

Важно помнить, что у нас существует возможность устанавливать breapoint только на машину состояний!

  • ​Запросить данные из GData любого объекта из дерева проекта.
  • Подсветить выбранный объект во viewer.

Как установить breakpoint?

Для этого в контекстном меню для выбранного объекта следует выбрать пункт Toggle breakpoint on every state.

Что автоматически задает условием остановки переход этой машины состояний в любое состояние.

Чтобы указать конкретное состояние - нужно в поле state вместо звёздочки указать имя состояния.

Вот так это выглядит в окне  отладчика.

Debug lock.png

Enabled - быстрое включение/отключение breakpoint. Важно: отключается при каждом запуске viewer!
Object ID - ID объекта.
State - состояние, в которое должна попасть машина состояний, чтобы сработала остановка. По-умолчанию - *, что означает, что остановка будет произведена при переходе в любое состояние.
Parameter - параметр, при изменении которого будет произведена остановка.
Debuger addTrace.png - Добавить новый объект для отслеживания
Debuger removeTrace.png - Удалить из отслеживания объект, выбранный в Debug dock
Debuger request GData.png - Запросить данные GData для выбранного объекта в Debug dock
Debuger hightlight.png - Подсветить выбранный в Debug dock объект во вьювере

Что происходит во время остановки?

Открывается окно, которое является точной копией окна настройки машины состояний, но недоступное для редактирование.

Дополнительно в первой колонке отображаются все параметры из GData машины.

Существуют два режима отображения в таком окне:

  1. При переходе в новое состояние столбец с одноименным состоянием не заменяется, а все новые добавляются справа от текущего.
  2. Заменяются столбцы с одноименным состоянием, а все параметры, которые поменяли своё значение - подсвечиваются красным.

Переключаться между режимами можно с помощью кнопки:

Btn no rewrite.png Btn rewrite.png

Зачем нужна вторая вкладка Logging?

В этой вкладке мы видим окно отображения лога, которое обновляется в режиме реального времени.

Logging dock.png

Каждый из столбцов обладает фильтром.

Чтобы добавить условие фильтрации нужно выделить стобец и в поле Filter вписать строку, при нахождении которой полная строка появится в окне.

Чтобы очистить лог нужно нажать на кнопку Clear Log

Clear log btn.png

Чтобы открыть файл с логами нужно нажать клавишу с тремя точками и выбрать указать путь к нужному файлу в стандартном окне проводника операционной системы.

Dots btn.png