Отладка
Техники и лучшие практики для отладки плагинов и обработки ошибок в процессе разработки вашего языкового модуля.
Отладка плагинов 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
- Убедитесь, что языковой модуль Lua настроен для поддержки отладки.
- Запустите Plugify с загруженным вашим плагином на Lua.
Подключитесь к отладчику EmmyLua
- Откройте вашу IDE (например, IntelliJ IDEA или VS Code) с установленным плагином EmmyLua.
- Настройте отладчик EmmyLua для подключения к вашей среде Lua (например, через адаптер отладки или библиотеку отладки Lua).
- Ваш плагин на 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.