打印lua堆栈,包括文件名,行号,函数
发布时间:2020-12-14 22:56:06 所属栏目:大数据 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 function printCallStack()local startLevel = 2 --0表示getinfo本身,1表示调用getinfo的函数(printCallStack),2表示调用printCallStack的函数,可以想
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 function printCallStack() local startLevel = 2 --0表示getinfo本身,1表示调用getinfo的函数(printCallStack),2表示调用printCallStack的函数,可以想象一个getinfo(0级)在顶的栈. local maxLevel = 10 --最大递归10层 for level = startLevel,maxLevel do -- 打印堆栈每一层 local info = debug.getinfo( level,"nSl") if info == nil then break end print( string.format("[ line : %-4d] %-20s :: %s",info.currentline,info.name or "",info.source or "" ) ) -- 打印该层的参数与局部变量 local index = 1 --1表示第一个参数或局部变量,依次类推 while true do local name,value = debug.getlocal( level,index ) if name == nil then break end local valueType = type( value ) local valueStr if valueType == 'string' then valueStr = value elseif valueType == "number" then valueStr = string.format("%.2f",value) end if valueStr ~= nil then print( string.format( "t%s = %sn",name,value ) ) end index = index + 1 end end end 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |