Corona中文站

强大、易学的跨平台(iOS/Android)开发框架。QQ群1:74390406(满) 群2:221929599

导航

如何跟踪调试Lua 程序?【转云风博客】

我们用 lua 做主要的项目开发语言,一直有同学希望可以在 IDE 里单步跟踪调试 lua 代码。我总觉得这个坏习惯是被 Windows 带坏的。当然,很多年前,我也尝试过编写一个图形界面的 debugger 。后来这玩意半途而废了。因为我觉得没啥实用价值,需要这样去调试 lua 程序的程序员反正也写不好 lua 程序。宁可不要这种工具让 lua 程序员的代码质量能提高一点。

后来过了两年,还在网易时,又有同学要求有一个方便点的调试器。我又写过一个远程调试器,gdb like 的界面,用 C/S 方式调试,并用 GTK 配了一个 GUI 的 client 。主要就是远程设置断点,观察变量等。有兴趣的同学可以看这一篇

这套东西不多提了。今天又有人老话重提。我觉得吧,与其做一个交互式的调试器,不如做一个 trace log 简单实用。毕竟在生产环境,不是有那么多机会让你中断下服务单步调试的。

我们如果可以 log 下需要监控的函数的内部执行流程,以及相关变量的变化。是很容易找到 bug 的。

只要 log 格式规范,很容易另外写一个独立的 GUI 工具,带代码编辑器,可以交互式的重现运行流程。

我花了两小时随手写了一个 trace 工具,还凑合能用。它可以跟踪调用 trace 的当前函数的运行。当函数返回后,自动把 debug hook 取消。

如果再花点精力,可以加上监视 foo.bar 这样的变量。这需要对 table 访问的支持,不过我懒得做了。

有兴趣看看的同学可以从 github 仓库自取

<< corona中利用Image Sheets, Image Groups, and Sprites进行图片/精灵处理在Corona应用程序中使用Inmobi广告攻略 >>

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By Z-Blog 1.8 Walle Build 100427 Copyright 2011-2015 BuildApp.Net. All Rights Reserved.