Отладка

Техники и лучшие практики для отладки плагинов и обработки ошибок в процессе разработки вашего языкового модуля.

Отладка плагинов Lua, встроенных в C++ приложения, такие как Plugify, требует использования плагина EmmyLua и совместимых отладчиков для инспектирования и устранения неполадок в вашем коде Lua. Это руководство предоставляет обзор того, как отлаживать плагины Lua в этом контексте, и направляет вас к внешним ресурсам для получения подробных инструкций.

Предварительные требования

Перед отладкой ваших плагинов на Lua убедитесь, что у вас есть следующее:

  • Среда Lua (версия 5.1, 5.2, 5.3 или 5.4), установленная и настроенная.
  • Плагин EmmyLua, установленный в вашей IDE (например, IntelliJ IDEA, VS Code).
  • Основная библиотека Plugify (собрана и доступна).
  • Языковой модуль Lua (plugify-module-lua), установленный и настроенный.
  • Плагин на Lua для отладки.

Отладка плагинов Lua с помощью EmmyLua

Плагин EmmyLua предоставляет мощные возможности отладки для кода Lua. Ниже приведены общие шаги по отладке плагинов Lua, встроенных в C++ приложения:

Включите EmmyLua в Plugify

  1. Убедитесь, что языковой модуль Lua настроен для поддержки отладки.
  2. Запустите Plugify с загруженным вашим плагином на Lua.

Подключитесь к отладчику EmmyLua

  1. Откройте вашу IDE (например, IntelliJ IDEA или VS Code) с установленным плагином EmmyLua.
  2. Настройте отладчик EmmyLua для подключения к вашей среде Lua (например, через адаптер отладки или библиотеку отладки Lua).
  3. Ваш плагин на Lua должен появиться в интерфейсе отладчика. Начните сеанс отладки для инспектирования кода.

Установите точки останова

  • Откройте исходные файлы Lua вашего плагина в IDE.
  • Установите точки останова в вашем коде, щелкая на левом поле рядом с номерами строк.

Отладьте ваш плагин

  • Активируйте функциональность в вашем плагине, которую вы хотите отладить.
  • Отладчик приостановит выполнение на ваших точках останова, позволяя вам инспектировать переменные, пошагово выполнять код и анализировать стек вызовов.

Подробное руководство по отладке

Для исчерпывающего пошагового руководства по использованию EmmyLua обратитесь к официальной документации EmmyLua:

Распространенные сценарии отладки

1. Сбои плагина

  • Проверьте логи Plugify на наличие сообщений об ошибках Lua.
  • Используйте отладчик EmmyLua для определения точной строки кода, вызывающей сбой.
  • Инспектируйте переменные и трассировки стека для диагностики проблемы.

2. Плагин не загружается

  • Убедитесь, что плагин размещен в правильном каталоге.
  • Проверьте наличие отсутствующих зависимостей Lua или синтаксических ошибок.
  • Используйте отладчик EmmyLua для пошагового выполнения кода инициализации плагина.

3. Неожиданное поведение

  • Установите точки останова в соответствующих функциях для отслеживания потока выполнения.
  • Инспектируйте значения переменных для выявления расхождений.
  • Используйте условные точки останова для отладки конкретных сценариев.

Продвинутые советы по отладке

1. Используйте логирование

  • Добавляйте операторы print() в код вашего плагина на Lua для отслеживания потока выполнения и значений переменных.
  • Используйте встроенную систему логирования Plugify для вывода сообщений в консоль или файлы логов.

2. Отладка корутин

  • Используйте функции отладки корутин в EmmyLua для отслеживания выполнения корутин.
  • Инспектируйте состояния корутин (например, 'running', 'suspended') для выявления проблем.

3. Отладка проблем с памятью

  • Используйте collectgarbage("count") в Lua для мониторинга использования памяти.
  • Создавайте снимки кучи с помощью EmmyLua или других инструментов Lua для анализа потребления памяти.

Устранение неполадок

1. Отладчик не подключается

  • Убедитесь, что Plugify запущен и отладчик EmmyLua включен.
  • Убедитесь, что в IDE настроена правильная среда Lua.

2. Точки останова не срабатывают

  • Убедитесь, что код Lua соответствует выполняемой версии.
  • Пересоберите плагин и перезапустите Plugify.

3. Сбои отладчика

  • Обновите Lua до последней совместимой версии.
  • Убедитесь, что все зависимости совместимы с вашей средой разработки.

Для более продвинутых техник и инструментов отладки обратитесь к документации EmmyLua.