加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

打印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】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读