CentOS7.4上使用vscode调试Lua脚本

作者:刘树伟

日期:2021-01-11

 

环境:

Win10,VSCode1.52.1,CentOS7.4

 

一、Win10上调试本机 Lua

安装插件:Lua Debug(不支持require动态库)

二、Win10上远程调试CentOS上的Lua

安装插件:LRDB,LRDB表示Lua remote debugger(不支持require动态库)

三、CentOS7.4上调试本机Lua

3.1 安装libXss.so

官方引用页:

https://pkgs.org/download/libXss.so.1%28%29%2864bit%29

https://centos.pkgs.org/7/centos-x86_64/libXScrnSaver-1.2.2-6.1.el7.x86_64.rpm.html

 

官方下载地址:

http://mirror.centos.org/centos/7/os/x86_64/Packages/libXScrnSaver-1.2.2-6.1.el7.x86_64.rpm

 

在CentOS7.4上直接安装vscode的时候,会提示找不到libXss.so,所以先下载libXss.so,然后安装:

rpm -ivh libXScrnSaver-1.2.2-6.1.el7.x86_64.rpm

 

3.2 安装vscode

官方下载地址:

https://az764295.vo.msecnd.net/stable/ea3859d4ba2f3e577a159bc91e3074c5d85c0523/code-1.52.1-1608137084.el7.x86_64.rpm

 

安装命令:

rpm -ivh code-1.52.1-1608137084.el7.x86_64.rpm

 

3.3 安装Local Lua Debugger插件

执行命令:

code --user-data-dir

打开vscode

在扩展插件中,搜索到Local Lua Debugger后安装,注意是Tom Blind发布的。

3.3 准备动态库

我们的lua脚本在/root/lua_script文件夹下,文件名为1.lua,内容前两行为:

local lfs = require "lfs"

local cjson = require "cjson"

这表示lua要引入lfs.so和cjson.so库。

我们在shell中,执行:

lua /root/lua_script/1.lua 1 1 1

输出:

lua: /root/lua_script/.lua: 1: module 'lfs' not found:

         no field package.preload['lfs']

         no file './lfs.lua'

         no file '/usr/share/lua/5.1/lfs.lua'

         no file '/usr/share/lua/5.1/lfs/init.lua'

         no file '/usr/lib64/lua/5.1/lfs.lua'

         no file '/usr/lib64/lua/5.1/lfs/init.lua'

         no file './lfs.so'

         no file '/usr/lib64/lua/5.1/lfs.so'

         no file '/usr/lib64/lua/5.1/loadall.so'

stack traceback:

         [C]: in function 'require'

         /root/lua_script/1891_avscan.lua:1: in main chunk

         [C]: ?

从输入信息,可以发现lua寻找动态库的路径顺序。前面几个路径,都是寻找lfs.lua,只有从/usr/lib64/lua/5.1/中是寻找lfs.so。所以我们事先把lfs.so和cjson.so放到/usr/lib64/lua/5.1/中。

3.4 调试Lua

通过vscode打开/root/lua_script文件夹(vscode没有工程概念,一个文件夹就是一个工程),然后运行菜单【Run】下面的【Open Configurations】,在文件夹下自动生成一个隐藏的文件夹“.vscode“,里面自动创建一个launch.json文件,内容如下(下面的内容是修改后的):

{

    // Use IntelliSense to learn about possible attributes.

    // Hover to view descriptions of existing attributes.

    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387

    "version": "0.2.0",

    "configurations": [

        {

            "name": "Debug Lua Interpreter",

            "type": "lua-local",

            "request": "launch",

            "program": {

                "lua": "lua",

                "file": "1.lua"

            },

            "args": ["1", "1", "2"]

        },

        {

            "name": "Debug Custom Lua Environment",

            "type": "lua-local",

            "request": "launch",

            "program": {

                "command": "command"

            },

            "args": []

        }

    ]

}

上面的json生成两个配置项,分别是Debug Lua Interpreter和Debug Custom Lua Environment。我们使用Debug Lua Interpreter即可。

我们把里面的file改成1.lua,在1.lua里加上断点后,按F5就可以单步调试了。快捷键和VS一样,F10表示单步,F11表示进入函数内部。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值