如何接入其他非lua的lua环境 - actboy168/lua-debug GitHub Wiki
非原生lua环境下的调试
1. 不兼容lua原生的-e命令的环境
如果能修改兼容-e命令,在环境中执行指定lua代码段,请转到下面
可以在lua脚本中直接attach来连接调试器即可. 如果lua脚本中不支持加载动态库的,可以有使用以下方法:
导出lua符号表
导出lua符号表的比较简单,可以使用attach或者launch来挂载调试器
{
"name": "launch process",
"request": "launch",
"runtimeArgs": "${workspaceFolder}/main.lua",
"runtimeExecutable": "${workspaceFolder}/aa.exe",
"stopOnEntry": true,
"type": "lua",
"inject": "lldb", //根据平台使用lldb/gdb/hook,主要为了注入launch动态库来挂载调试器
"luaVersion": "5.1",
}
{
"name": "attach",
"processName": "lua", //或者使用processid
"request": "attach",
"stopOnEntry": true,
"type": "lua",
"inject": "lldb",
}
未导出lua符号表
TODO:
2. 兼容lua原生-e命令的环境
以下以busted测试框架为例
{
"type": "lua",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/t/save-database.lua",
"luaexe": "resty",
"luaArch": "arm64",
"luaVersion": "jit",
"path": "${workspaceFolder}/?.lua",
"cpath": "${workspaceFolder}/?.so"
}
主要设置luaexe,luaArch,luaVersion三个参数即可.