Mac下VSCode调试skynet的lua环境配置

Mac下VSCode调试skynet的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出来的方法是没办法下断的,目前还没有摸索出方法,有知道的朋友请告知一下。

参考:

https://blog.csdn.net/qq_41252394/article/details/124576105

相关推荐
多弗朗皮卡丘34 分钟前
数据结构番外:环形队列
数据结构·c
91刘仁德3 小时前
传输层协议深度拆解:端口寻址、UDP 报文与 TCP 可靠性机制全解析
linux·网络·c++·网络协议·tcp/ip·udp·c
C++ 老炮儿的技术栈17 小时前
不一样的数值交换
数据结构·c++·人工智能·算法·c·csdn开发云
C++ 老炮儿的技术栈17 小时前
main函数之后的调用
c语言·c++·人工智能·qt·mfc·c
小师兄吃牛肉2 天前
C++ 与 Lua 的协程交互:从原理到实战
c++·lua·交互
喜欢的名字被抢了2 天前
09-Redis 进阶原理篇:单线程、多线程、过期、LRU-LFU、Fork 与 Lua
数据库·redis·lua
白山编程大哥3 天前
Lua 中使用 C 语言的用户自定义类型——userdata
c语言·junit·lua
C++ 老炮儿的技术栈3 天前
有符号变量与无符号变量的区别
服务器·开发语言·前端·数据结构·c++·算法·c
haliu3 天前
【FHE 同态加密】我们如何实现同态加密推理(十六):未完成清单与已知边界(同态加密推理的精度、性能与安全)
人工智能·嵌入式·c·fhe·推理引擎·c11·边缘推理·同态加密推理
haliu4 天前
【FHE 同态加密】我们如何实现同态加密推理(十五):实测账本——一跳 1.8 小时,钱花在哪(同态加密推理性能剖析)
人工智能·嵌入式·c·fhe·推理引擎·c11·边缘推理·同态加密推理