/douluadebugger

Primary LanguageLuaApache License 2.0Apache-2.0

DouLuaDebugger

基于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;

使用方法

  1. 在VSCode中打开项目中任意的lua文件,点击右键选择[DouLua] 导入调试器到当前项目,会导入调试器需要的C#和Lua代码到项目中;

  2. 在Lua入口程序处加入下面的代码:

require("LuaDebug")("localhost", 8911)
  1. 在VSCode中创建调试配置,可选择下面2项:
  • DouLua_Launch:需要先启动调试器,由Lua调试程序初始化时来连接调试器;
  • DouLua_Attach:可以在任意时刻启动调试器,调试器启动后Lua程序会主动连接上调试器,方便真机出现bug后再调试的需求;
  1. 开始愉快调试;

真机调试

注意:调试器同时只能保持一个连接;

真机安装包内的lua代码是明文(非luac编译后的二进制),且和调试器中代码的一致;

手机开启usb调试并通过usb和电脑连接;

修改调试配置的clientHostlocalhost

执行下面的命令,这里主要是打通手机和PC的Socket通讯连接:

将手机端的端口收到的数据,转发给到PC中的端口:

adb reverse tcp:8911 tcp:8911

将PC端的端口收到的数据,转发给到手机中的端口;

adb forward tcp:8912 tcp:8912

启动调试器再启动游戏即可调试;

断点日志

选择打印日志就不会进入该断点,而是在该断点处直接输出日志;

如果输入的日志前面带有>>>的符号,则表示后面的字符串为表达式,会在当前断点处执行该表达式并将该表达式的结果作为日志打印;

重载Lua文件

打开需要重载代码的Lua文件,点击鼠标右键选择[DouLua] 调试时重新加载Lua文件即可;

尚未支持的功能

  • 单步跳出未实现,目前单步跳出和继续运行功能一致;
  • 不支持断点命中次数;