Lua Debug 配置
-
VSCode
Why LuaPanda
-
开源、免费
-
鹅厂开发维护,靠谱
-
调试比 EmmyLua 方便,完善。支持多种条件断点,例如表达式或者命中次数。
-
更好支持 XLua。当字段如果指向 Unity 内容,会显示 Unity 类型,而 EmmyLua 则会显示为 nil,这很影响判断
-
代码高亮侵略性小,emmyLua 粉红的不好看。
-
代码分析部分是内嵌了 LuaCheck,想配置也方便。
本地调试
前几个步骤已经提交版本库,需要手动调整的是Debug launch 配置和后面的内容。
但是为了清楚流程,还是有必要介绍下
工具导入
添加 LuaPanda 项目下的 Debugger 文件夹放入本地的项目内,删除 LuaPanda.lua 以外的内容。如下:
Debug 策略调整
LuaPanda.lua 就是 debug 工具,打开,对里面参数进行调整。
openAttachMode 会让 debuger 不断进行重连会影响性能,开发模式下可以接受,但不应该发布后使用,所以添加判断。
装嵌
在Main.lua
添加代码require("Debugger.LuaPanda").start("127.0.0.1", 8818)
,后面的端口号可以修改,但是要保证和 Debug 的 launch.json 的 connectionPort 一致
Debug launch 配置
关闭其他 Lua 插件,在 Debug 按钮中点击齿轮,下拉选项中添加配置 LuaPanda 文件。如果没有 LuaPanda 选项,先删除旧的.vscode/launch.json
。
然后对配置文件以下选项进行修改
"luaFileExtension": ".lua",
"connectionPort": 8818,
"stopOnEntry": false,
"distinguishSameNameFile": true,
"useCHook": true,
"autoPathMode": true
小问题调整
出于某种原因重新运行 Unity,已经打开的 LuaPanda 调试不会重新连接 Unity。所以需要手动修改配置,自动重连。
修改完,重启 vscode
然后就可以开始断点调试了。
真机远程调试
远程调试根据 EmmyLua 官方文档步骤 整合
- 下载 Mobdebug.lua 加入项目(项目中已配备)
- 下载 IntelliJ IDEA Community Edition
- 配置 IntelliJ IDEA 的 Emmylua 调试器
- 游戏使用 Mobdebug.lua 连接调试器
配置 IntelliJ IDEA 的 Emmylua 调试器
下载 IntelliJ IDEA Community Edition 后,以 LuaScript
打开项目。
根据以下步骤设置当前目录为 Content Root。
新增调试配置文件
参数默认即可。
然后就可以点击 debug 开启调试,等待真机连接。
游戏使用 Mobdebug.lua 连接调试器
Mobdebug.lua 的使用已经封装好,回到游戏中打开 GM/远程调试/选择预设 IP
面板选择连接即可。(支持 LuaJIT)
连接配置支持两种形式,任选其一
- 对于常用 IP 建议加入
GMRemoteDebug.lua
的配置中,直接点击相应 Start 开始连接调试器。 - 对于不常用,或临时调试,也可以直接输入目标 IP 和端口调试
Warning
Mobdebug 远程调试非常卡,如果连着切场景会非常痛苦,所以建议只在需要的地方开始断点。例如调试打开界面的 bug,那就在打开界面前再开始调试。
项目主用 VSCode 进行日常开发调试,后续尝试寻找 VSCode 的远程调试方案
代码检查配置
LuaPanda 内部依赖了 Luacheck 作为代码检查工具。
调整方法
-
一些常用的配置,LuaPanda 的设置界面也会提供。在已安装插件中,右键 LuaPanda,打开配置设置,Lua_analyzer 相关的配置就是,推荐该方法。
-
如果对 Luacheck 有了解,想进行更深的配置,可以在
C:\Users\Administrator\AppData\Local\Luacheck\.luacheckrc
配置,如果没有则需要手动创建。
如果代码检测提醒内容太过繁杂,可以通过设置的 Ignore Error Code 屏蔽不需要的提醒。
以上的配置屏蔽了 542 (空白分支),611 (空白行)。更多提醒 id 可以将鼠标悬浮在提醒的波浪线上查看。