Использование AppSalute Debugger при отладке
Что такое debugger?
Debugger (он же отладчик) - это отдельное приложение, которое предназначено для поиска и локализации ошибок в работе приложения.
Зачем он нужен?
Это незаменимый инструмент в процессе отладки, ведь чаще всего нужно:
- Узнать текущее значение той или иной переменной.
- Выяснить по какому пути выполнялся код.
Что нужно сделать, чтобы начать пользоваться отладчиком?
Первоначально следует проверить настройки подключения к viewer, которые хранятся в теге [Game] в app.icf. Этот файл должен находится в корне директории с редактором.
Что я должен увидеть в этом файле?
Обязательным для работы является наличие двух строк в теге [Game]:
DebuggerPort=5322
Где DebuggerIP - это IP адресс машины, на которой запущен отладчик. А DebuggerPort - порт подключения, который остаётся неизменным!
DebuggerIP - может принимать несколько значений:
- 127.0.0.1 - т.е localhost, что не позволит использовать отладчик на удалённом устройстве, но прекрасно подойдет, если Вы не знаете IP машины, за которой работаете.
- IP в локальной сети, который можно узнать у системного администратора. Этот является предпочтительным.
Что нужно сделать в SceneEditor, чтобы запустить отладчик?
Чтобы запустить режим отладки нужно нажать на кнопку в верхней панели.
После чего откроется окно.
А в конткестном меню (вызывается нажатием ПКМ) появятся новые строки.
Я запустил viewer, что делать дальше?
Нужно подключиться к "серверу", которым является Ваша рабочая машина с запущенным SceneEditor.exe.
Для этого нужно во viewer нажать F6.
Как узнать, что подключение успешно?
В окне отладки появится строка:
connection successful!
А за ней периодически будут появляться строки вида:
viewer pinged
Что я могу делать с помощью отладчика?
- Первое и самое полезное - установка breakpoint.
Breakpoint - это остановка выполнения всей программы при определенных условиях. Пример: машина состояний перешла в другое состояние, переменная поменяла своё значение и т.д.
Важно помнить, что у нас существует возможность устанавливать breapoint только на машину состояний!
- Запросить данные из GData любого объекта из дерева проекта.
- Подсветить выбранный объект во viewer.
Как установить breakpoint?
Для этого в контекстном меню для выбранного объекта следует выбрать пункт Toggle breakpoint on every state.
Что автоматически задает условием остановки переход этой машины состояний в любое состояние.
Чтобы указать конкретное состояние - нужно в поле state вместо звёздочки указать имя состояния.
Вот так это выглядит в окне отладчика.
Что происходит во время остановки?
Открывается окно, которое является точной копией окна настройки машины состояний, но недоступное для редактирование.
Дополнительно в первой колонке отображаются все параметры из GData машины.
Существуют два режима отображения в таком окне:
- При переходе в новое состояние столбец с одноименным состоянием не заменяется, а все новые добавляются справа от текущего.
- Заменяются столбцы с одноименным состоянием, а все параметры, которые поменяли своё значение - подсвечиваются красным.
Переключаться между режимами можно с помощью кнопки:
Зачем нужна вторая вкладка Logging?
В этой вкладке мы видим окно отображения лога, которое обновляется в режиме реального времени.
Каждый из столбцов обладает фильтром.
Чтобы добавить условие фильтрации нужно выделить стобец и в поле Filter вписать строку, при нахождении которой полная строка появится в окне.