跳转至

Lua Debug 配置

Why LuaPanda

  • 开源、免费

  • 鹅厂开发维护,靠谱

  • 调试比 EmmyLua 方便,完善。支持多种条件断点,例如表达式或者命中次数。

  • 更好支持 XLua。当字段如果指向 Unity 内容,会显示 Unity 类型,而 EmmyLua 则会显示为 nil,这很影响判断

  • 代码高亮侵略性小,emmyLua 粉红的不好看。

  • 代码分析部分是内嵌了 LuaCheck,想配置也方便。

本地调试

前几个步骤已经提交版本库,需要手动调整的是Debug launch 配置和后面的内容。

但是为了清楚流程,还是有必要介绍下

工具导入

添加 LuaPanda 项目下的 Debugger 文件夹放入本地的项目内,删除 LuaPanda.lua 以外的内容。如下:

image-20220303150720052

image-20220303112804423

Debug 策略调整

LuaPanda.lua 就是 debug 工具,打开,对里面参数进行调整。

image-20220303113057517

openAttachMode 会让 debuger 不断进行重连会影响性能,开发模式下可以接受,但不应该发布后使用,所以添加判断。

装嵌

Main.lua添加代码require("Debugger.LuaPanda").start("127.0.0.1", 8818),后面的端口号可以修改,但是要保证和 Debug 的 launch.json 的 connectionPort 一致

image-20220303111931337

Debug launch 配置

关闭其他 Lua 插件,在 Debug 按钮中点击齿轮,下拉选项中添加配置 LuaPanda 文件。如果没有 LuaPanda 选项,先删除旧的.vscode/launch.json

image-20220303110703574

然后对配置文件以下选项进行修改

"luaFileExtension": ".lua",
"connectionPort": 8818,
"stopOnEntry": false,
"distinguishSameNameFile": true,
"useCHook": true,
"autoPathMode": true

image-20220303111020419

小问题调整

出于某种原因重新运行 Unity,已经打开的 LuaPanda 调试不会重新连接 Unity。所以需要手动修改配置,自动重连。

image-20220303110230432

修改完,重启 vscode

然后就可以开始断点调试了。

真机远程调试

远程调试根据 EmmyLua 官方文档步骤 整合

  1. 下载 Mobdebug.lua 加入项目(项目中已配备)
  2. 下载 IntelliJ IDEA Community Edition
  3. 配置 IntelliJ IDEA 的 Emmylua 调试器
  4. 游戏使用 Mobdebug.lua 连接调试器

配置 IntelliJ IDEA 的 Emmylua 调试器

下载 IntelliJ IDEA Community Edition 后,以 LuaScript 打开项目。

根据以下步骤设置当前目录为 Content Root。

image-20231007114822757

新增调试配置文件

image-20231007115025677

image-20231007115058784

参数默认即可。

然后就可以点击 debug 开启调试,等待真机连接。

游戏使用 Mobdebug.lua 连接调试器

Mobdebug.lua 的使用已经封装好,回到游戏中打开 GM/远程调试/选择预设 IP 面板选择连接即可。(支持 LuaJIT)

image-20231025200908492

连接配置支持两种形式,任选其一

  1. 对于常用 IP 建议加入 GMRemoteDebug.lua 的配置中,直接点击相应 Start 开始连接调试器。
  2. 对于不常用,或临时调试,也可以直接输入目标 IP 和端口调试

Warning

Mobdebug 远程调试非常卡,如果连着切场景会非常痛苦,所以建议只在需要的地方开始断点。例如调试打开界面的 bug,那就在打开界面前再开始调试。

项目主用 VSCode 进行日常开发调试,后续尝试寻找 VSCode 的远程调试方案

代码检查配置

LuaPanda 内部依赖了 Luacheck 作为代码检查工具。

调整方法

  1. 一些常用的配置,LuaPanda 的设置界面也会提供。在已安装插件中,右键 LuaPanda,打开配置设置,Lua_analyzer 相关的配置就是,推荐该方法。

  2. 如果对 Luacheck 有了解,想进行更深的配置,可以在 C:\Users\Administrator\AppData\Local\Luacheck\.luacheckrc配置,如果没有则需要手动创建。

image-20220303104938668

如果代码检测提醒内容太过繁杂,可以通过设置的 Ignore Error Code 屏蔽不需要的提醒。

image-20220303105456659

以上的配置屏蔽了 542 (空白分支),611 (空白行)。更多提醒 id 可以将鼠标悬浮在提醒的波浪线上查看。

image-20220303105724690