Skip to content
fesily edited this page Mar 1, 2022 · 9 revisions

首先声明第三方写wiki不保证时效性!仅在macos下测试

1.远程调试,Attach

首先请在你的lua代码里添加

require "luadebug" : start "127.0.0.1:4980" : event "wait"

luadebug.lua 这个文件是作者在example文件夹下里面提供的,当然你也可以直接调用真实的debugger.lua.

在我的机器是上路径是/Users/apple/.vscode/extensions/actboy168.lua-debug-1.53.0/script/debugger.lua

actboy168.lua-debug-1.53.0的后缀会随着版本号的变化而变化 /Users/apple/这个文件夹是我电脑上目录

在windows下请自行搜索vscode插件的安装文件夹


ps:通过ip调试会出现,原来的端口被占用,导致的调试失败.

现象如下:lua程序和调试器都打开了,连不上.查看调试器的日志,会发现端口占用.

原因如下:lua这边通过listen端口,调试器连接端口进行通信.绝大多数情况下都是ok的.原因看这个macos-so-reuseaddr-so-reuseport-not-consistent-with-linux

建议使用unix通信,这样不会导致这个问题出现.windows下windows8以后支持unix通信,可用性自行测试

原来是

require "luadebug" : start "127.0.0.1:4980" : event "wait"

路径名可以随便改,程序有这个文件的创建和访问权限就行.改成

require "luadebug" : start "@/apisix/debug.sock" : event "wait"

相应的在vscode的调试文件launch.json中

 {
            "name": "附加到特权进程",
            "type": "lua",
            "request": "attach",
            "stopOnEntry": true,
            "address": "127.0.0.1:4980"
 }

改成

 {
            "name": "附加到特权进程",
            "type": "lua",
            "request": "attach",
            "stopOnEntry": true,
            "address": "@/apisix/debug.sock"
}

2. 直接运行 Launch script