基于VSCode的Lua语言调试器扩展,除支持PC端调试外,还可支持真机调试;
本插件不具备Lua语法解析和格式化等功能,仅用于调试;
Lua程序需要集成lua-socket库,xlua默认已经集成;
直接通过VSCode的扩展商店中搜索DouLuaDebugger
即可安装该插件;
每个项目内部使用的环境等都可能不一致,该插件无法覆盖所有项目,所以在必须的情况下需要修改插件的代码以适配自己的项目;
修改插件后,安装vsce
:
npm install -g vsce
再执行下面的命令即可生成直接通过硬盘安装的vsix
文件:
vsce package
网上有教程,通过登录自己的账号后就可以发布插件到扩展商店:
vsce login wizardc
vsce publish
目前支持下面的开发环境:
- Unity+XLua;
-
在VSCode中打开项目中任意的lua文件,点击右键选择
[DouLua] 导入调试器到当前项目
,会导入调试器需要的C#和Lua代码到项目中; -
在Lua入口程序处加入下面的代码:
require("LuaDebug")("localhost", 8911)
- 在VSCode中创建调试配置,可选择下面2项:
- DouLua_Launch:需要先启动调试器,由Lua调试程序初始化时来连接调试器;
- DouLua_Attach:可以在任意时刻启动调试器,调试器启动后Lua程序会主动连接上调试器,方便真机出现bug后再调试的需求;
- 开始愉快调试;
注意:调试器同时只能保持一个连接;
真机安装包内的lua代码是明文(非luac编译后的二进制),且和调试器中代码的一致;
手机开启usb调试并通过usb和电脑连接;
修改调试配置的clientHost
为localhost
;
执行下面的命令,这里主要是打通手机和PC的Socket通讯连接:
将手机端的端口收到的数据,转发给到PC中的端口:
adb reverse tcp:8911 tcp:8911
将PC端的端口收到的数据,转发给到手机中的端口;
adb forward tcp:8912 tcp:8912
启动调试器再启动游戏即可调试;
选择打印日志就不会进入该断点,而是在该断点处直接输出日志;
如果输入的日志前面带有>>>
的符号,则表示后面的字符串为表达式,会在当前断点处执行该表达式并将该表达式的结果作为日志打印;
打开需要重载代码的Lua文件,点击鼠标右键选择[DouLua] 调试时重新加载Lua文件
即可;
- 单步跳出未实现,目前单步跳出和继续运行功能一致;
- 不支持断点命中次数;