调试lua代码
来源:互联网 发布:约瑟夫环c语言链表 编辑:程序博客网 时间:2024/05/18 01:19
lua没有调试器,但是它提供了很强的调试功能(debug 库), 所以其实一些常用的调试功能都能很方便的使用,就像使用一个命令行调试器一样:
-- debug.luagvar1 = 100function foo() local var2 = 10 function bar() debug.debug() return var2 end bar()enddebug.debug()foo()
【设置断点】
这个比较麻烦一点,需要修改代码加入一句:
debug.debug()
如果你要条件断点,或者计数断点,没问题,直接写代码就是了
【开始调试】
直接运行就是:
lua debug.lua
进入断点显示:
[baiyanh@baiyanh-VirtualBox:~/source/arena/lua/PIL/c23-debug.lib]$ lua debug.lualua_debug>
要继续则运行cont(inue):
lua_debug> cont
【打印callstack】
注意因为断点是调用库函数debug.debug才进入的,stack trace中的前2帧是debug函数引入的,需要注意。
【查看全局变量】
【查看局部变量】
局部变量不能直接访问,需要用debug.getlocal,比如这里访问foo函数的局部变量:
lua_debug> print(debug.getlocal(4,1))var2 10
这里getlocal的第一个参数为帧数,我们根据debug.traceback返回的数据,知道foo对应第4帧。
【查看upvalue】
这里查看函数bar的upvalue,也就是foo里的那个局部变量
lua_debug> print(debug.getupvalue(debug.getinfo(3,"f").func, 1))var2 10
这应付日常的调试应该已经足够了(除了那些print党:))。
当然,我们可以把这些复杂的调用事先写成函数放在一个文件里,比如debug,然后可以:
lua debug debug.lua
这样就更方便了。
原文地址:http://www.cnblogs.com/baiyanhuang/archive/2013/01/01/2841398.html
0 0
- 调试lua代码小结
- decoda调试Lua代码
- 调试lua代码
- 在线调试 Lua 代码
- lua 代码的断点调试
- 使用vs2012调试quick-lua代码
- 剑网三插件入门教程(2):在游戏中调试Lua代码
- cocos2dx 3.x lua环境配置与代码调试
- cocos2dx 3.10 lua环境配置与代码调试
- cocos2dx 3.10 lua环境配置与代码调试
- cocos2dx 3.12 lua环境配置与代码调试_02
- 如何使用ZeroBrane Studio 调试cocos2dx-Lua代码
- windows端加密程序,lua代码,ZeroBrane调试
- Lua的调试
- Lua - 调试接口
- 关于Lua脚本调试
- 关于lua的调试
- Decoda调试Lua
- 安装pydot的过程,亲测可用
- java jackson 将对象转json时,忽略子对象的某个属性
- Kubernetes应用部署模型解析(原理篇)
- mysql游标使用
- [HNOI]2003 消防局的建立
- 调试lua代码
- Xcode7友盟分享
- 聊一聊php程序的sql注入攻击与字符转义问题
- android去掉标题栏
- 每天一个linux命令(1):ls命令
- comet4j java服务端推送消息到web页面实例
- 轻松学习Ionic
- Java 多态详解
- js正则表达式验证各类需求(整数,实数,小数,时间,URL等)