lua 中的调试一直是弱项,大部分只能靠print打印,而经常需要查找函数调源头,靠print一个个打印似乎有点傻。
网上找了lua的调试资料,发现有个非常好用的函数,就是traceback, lua自带的debug表里面。
debug.traceback(), 返回当前调用的函数栈的字符串形式。用print就可以查看到函数调用的源头,从而大大方便lua的拍错。
debug表的其他函数,我觉得作用并不是很大,只需记住这个就基本满足够用了。
示例:
function add(a,b)
print(debug.traceback('------add------'));
end
add(1,3)
-------------------------------------------
输出结果如下:
------add--------
stack traceback:
xxx.lua(文件名): 行号: in function 'add' --调用tackback的那一行
xxx.lua(文件名): 行号: in main chunk --调用add所在位置--