« Ejoy2D 开源 | 返回首页 | 一次内存越界的 bug »

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/
基于VS2012/2013的专业Lua源码编辑工具 http://visualstudiogallery.msdn.microsoft.com/aed5f1c9-c9c1-40dd-95aa-5dc7af8ba80f?SRC=Home
LuaStudio 才强大呢!!Decoda啥的都弱暴了。 www.LuaStudio.net
当年用decade照样来断点服务器调试。
decoda 也还行,并且也开源了
关注中
我们也在用lua,这个必须拿走,哈哈。
顶一个
支持开发

Post a comment

非这个主题相关的留言请到:留言本