Mac下VSCode调试skynet的lua环境配置
-
-
- 安装Lua5.4
- 安装Luasocket
- 下载LuaPanda.lua
- [安装VScode LuaPanda插件](#安装VScode LuaPanda插件)
- 配置skynet,在lua_cpath引入luasocket库
- 创建launch.json
- 在需要调试的lua文件里面添加代码
-
安装Lua5.4
brew install lua@5.4
安装Luasocket
LuaPanda需要luasocket这个第三方库,我们使用Luarocks来安装,Luarocks是Lua的包管理器,就像npm一样,它可以帮助我们下载、查找、删除Lua包
首先安装Luarocks, 到http://luarocks.org/releases/下载源码,我下载的是最新的3.11.1版本
https://luarocks.github.io/luarocks/releases/luarocks-3.11.1.tar.gz
tar -zxvf luarocks-3.11.1.tar.gz
cd luarocks-3.11.1
./configure && make && sudo make install
sudo luarocks install luasocket
下载LuaPanda.lua
https://github.com/Tencent/LuaPanda/tree/master/Debugger里面的LuaPanda.lua下载下来放到skynet/lualib目录下
这个文件是用来连接调试服务器的。
安装VScode LuaPanda插件
这个插件会开启调试服务器,并能下断点进行单步调试
配置skynet,在lua_cpath引入luasocket库
root = "./"
lua_cpath = root.."luaclib/?.so;".."/usr/local/lib/lua/5.4/?.so;"
创建launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lua",
"request": "launch",
"tag": "normal",
"name": "LuaPanda",
"description": "通用模式,通常调试项目请选择此模式 | launchVer:3.2.0",
"cwd": "${workspaceFolder}/game",
"luaFileExtension": "",
"connectionPort": 8818,
"stopOnEntry": true,
"useCHook": false,
"autoPathMode": true
},
]
}
useCHook必须要false, 如果为true会有段错误,不知道为何。
在需要调试的lua文件里面添加代码
require("LuaPanda").start("127.0.0.1", 8818)
这段代码会连接VSCode调试服务端。
所有配置已经完成,我们来尝试调试一下,在你的lua文件中添加断点。 注意:必须要在require("LuaPanda").start("127.0.0.1", 8818)执行后 的断点才起作用。
按F5启动VScode调试服务端,
然后运行skynet
如
skynet game/config
是不是你的断点断下来了?
skynet.fork出来的方法是没办法下断的,目前还没有摸索出方法,有知道的朋友请告知一下。
参考: