LuaDebugger——一款简单易用的lua调试器

Lua嵌入式调试器

LuaDebugger-lua语言调试器

目前在自学lua语言,遇到了lua语言嵌入c++程序难以调试的问题,目前没有在网上找到比较好的图形化的lua调试器能够解决我的需求——对嵌入其他程序中的lua脚本进行调试——非嵌入式的调试器无法调试嵌入式的lua脚本,因为一般嵌入式的lua脚本执行时,使用的lua状态机一般都注册了一些自定义的c++函数,而非嵌入式的lua调试器是自己创建一个状态机去执行脚本,运行到自定义c++函数时会出现没有注册的函数未定义错误而脚本崩溃,所以自己研究lua官网的debug库开发了一个lua语言调试器。

目前软件扔在开发中,功能尚不完善,但基础功能已经具备,目前简陋版可暂时满足作者自己的使用了,更丰富的功能和更多lua版本支持、更多平台支持后续作者会在工作之余逐步推进(目前仅支持lua5.3.5_win10_x64版本)。

简介

LuaDebugger是一个易于使用的图形化lua调试器,支持正常的调试器支持的流程控制,同时特色的点是,支持调试嵌入c++的lua脚本(lua脚本是由自定义的c++程序基于lua sdk调用执行的)。
直接双击解压后目录下的LuaDebugView.exe即可运行,无需安装。

入门

简单的调试功能使用,在打开程序的welcome页面说明了。

简单调试功能使用

1、启动LuaDebugView.exe,初次启动会出现权限校验的弹窗,可联系 3964549040@qq.com (或者直接加QQ,个人开发者回复不及时还请见谅)免费获取授权码(邮件中需要提供弹窗中显示的序列号,注意序列号较长,需要完整复制出来)
在这里插入图片描述
2、打开程序后,会默认打开welcome.lua文件,可以在其中代码区左侧显示行号位置,鼠标单击添加断点
3、然后在工具栏点击运行,即可在调试器中执行该脚本。运行到断点位置会中断,中断的代码行会高亮显示
在这里插入图片描述
4、之后就可以使用工具栏的单步、步进、跳出、继续 工具按钮执行单步跳过、单步进入、单步退出、继续执行等调试功能(或者通过快捷键F10,F11,Shift F11,F5,或者通过命令窗口中输入命令控制)
在这里插入图片描述
5、单击脱离,可断开调试器执行(断点不会再中断)。一次脚本执行中脱离了就无法再次附加上,再次点击“运行”实际会启动另外一个进程去执行脚本附加调试

嵌入式的调试功能

只需要按照welcome主页的介绍,
1、启动LuaDebugView.exe,然后将LuaDebugger.dll与Transmission.dll两个动态库拷贝到你的c++程序bin目录下(或者其他可查找到的位置),我们c++程序要调用的仅有这两个dll(需要基于同一个lua版本及同一编译目标平台)。
2、在你的脚本开始调试的位置,添加如下代码,即可连接调试器

require("LuaDebugger").on()

3、在不再需要调试的地方,添加如下语句,断开调试器(也可以等LuaDebugger.dll卸载的时候自动断开,这可能在你的c++程序关闭的时候)

require("LuaDebugger").off()

4、在LuaDebugView调试器中打开文件、添加断点,然后即可在你的c++程序中执行脚本开始调试

你也可以使用程序目录下自带的LuaMain.exe去尝试一下,这个程序是一个单独的程序,其中可以选择lua脚本,如我们启动后选择test.lua执行(已打好断点),效果如下:
在这里插入图片描述

文档

文档请参考:LuaDebugger文档

后续研发计划

核心功能:
1、堆栈帧切换。能够切换到各个调用级别,查看其代码位置、调试信息
2、局部变量窗体。能够查看当前中断位置处局部变量
3、变量监控
4、远程调试
5、更多的lua版本支持,更多的平台支持
其他优化:
1、代码区可编辑、更易于阅读代码,做到IDE级别的支持。目前代码区是只读的,仅作为一个调试器使用,后续会考虑增加代码编辑功能(简单编辑修改以及进阶的代码自动补全、重构功能)以及更优的代码浏览体验(代码高亮、代码管理及跳转)
2、界面美化,交互性优化,以及可配置
3、版本更新通道
…(更多功能可在评论区评论,作者看到了会考虑加进去)

可用版本

后续更新站点:http://47.109.176.40:8080/software/LuaDebugger/win
尝鲜版本链接如下:
2024.8.20更新:版本1.0.0.1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值