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
Posted by: liyang | (9) December 18, 2014 06:56 PM
Posted by: liyang | (8) March 14, 2014 10:01 AM
Posted by: 花样百 | (7) February 12, 2014 05:49 PM
Posted by: xff | (6) January 10, 2014 02:48 PM
Posted by: zhangshu | (5) January 4, 2014 11:27 PM
Posted by: 青岛珲莎舍 | (4) January 3, 2014 11:52 AM
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