Lua 远程调试器
我们现在的手游完全用 Lua 开发,这就有了调试的需要。
今年曾写过一个 lua 代码跟踪器,主要是用于服务器开发。服务器程序不适合完全 stop the world 慢慢调试,以输出 log 为主。但现在在客户端,那么一个类 gdb 的调试环境更好一些。
lua 的调试器在我还在网易时就做过 。从网易出来后没带代码,需要用就要重新写了。好在 lua 的 debug 接口非常全,今天花了 2 个小时就重新实现了一个简陋的雏形。
这是一个远程调试器,启动程序的时候利用 ldebug.start 监听一个调试端口,程序跑起来后使用 nc 或 telnet 就可以连上去调试。
我们可以在 lua 代码中用 ldebug.probe 放一些硬断点。平常是不激活的,也没有什么额外开销。
调试端口连接上后,只能注入一些 lua 代码运行,看一些全局变量。但在调试控制台上可以输入 stop 让程序在最近的 ldebug.probe 调用处停下来。然后我们就可以用类似 gdb 的指令单步运行程序,或是观察一些边变量。
其实在停止程序后,还可以做一些断点或条件断点的功能。今天没空做了,等用到再说。
代码放在 github 上,不定期维护。有兴趣的同学可以完善它。
Comments
基于VS2012/2013的专业Lua源码编辑工具https://babelua.codeplex.com/
Posted by: liyang | (9) December 18, 2014 06:56 PM
基于VS2012/2013的专业Lua源码编辑工具
http://visualstudiogallery.msdn.microsoft.com/aed5f1c9-c9c1-40dd-95aa-5dc7af8ba80f?SRC=Home
Posted by: liyang | (8) March 14, 2014 10:01 AM
LuaStudio 才强大呢!!Decoda啥的都弱暴了。
www.LuaStudio.net
Posted by: 花样百 | (7) February 12, 2014 05:49 PM
当年用decade照样来断点服务器调试。
Posted by: xff | (6) January 10, 2014 02:48 PM
decoda 也还行,并且也开源了
Posted by: zhangshu | (5) January 4, 2014 11:27 PM
关注中
Posted by: 青岛珲莎舍 | (4) January 3, 2014 11:52 AM
我们也在用lua,这个必须拿走,哈哈。
Posted by: lite3 | (3) January 3, 2014 10:12 AM
顶一个
Posted by: bot.su | (2) December 31, 2013 05:47 PM
支持开发
Posted by: 青岛珲莎舍 | (1) December 30, 2013 11:04 PM