前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LUA debug 工具函数

LUA debug 工具函数

作者头像
知然
发布2018-03-09 16:11:22
9980
发布2018-03-09 16:11:22
举报
文章被收录于专栏:H2CloudH2Cloud
代码语言:javascript
复制
local print = print
local debug = debug
local string = string
local io = io
local type = type
local pairs = pairs

module "dt"

function bt()
    local dinfo = debug.getinfo(2)
    local func_line = dinfo.linedefined
    local filename = dinfo.short_src
    local func_name = dinfo.name or"main"
    print ("func_line:", func_line, filename, func_name)

    local a =1
    local var_tb ={}
    while true
    do
        local name, value = debug.getlocal(2, a)
        if not name then break end

        var_tb[name]= value
        print(string.format("%s=", name), value)
        a = a +1
    end

    while true
    do
        io.write(string.format(">>"))
        local cmd = io.read()
        if cmd =="c"or cmd =="n"or cmd =="go"or cmd =="g"
        then
            break
        end

        local b = string.find(cmd," ")
        if b ==nil
        then
            print ("usage p + var")
        else
            local sub_cmd = string.sub(cmd,1, b-1)
            if sub_cmd =="p"or sub_cmd =="print"
                or sub_cmd =="dump"or sub_cmd =="d"
            then
                local sub_var = string.sub(cmd, b +1)
                local value = var_tb[sub_var]
                print(string.format("%s=", sub_var), value)

                if type(value)=="table"
                then
                    for k, v in pairs(value)
                    do
                        print("", k , v)
                    end
                end
            else
                print ("usage p + var", sub_cmd)
            end
        end
    end
end

--[[ 示例

require "dt"
dt.bt()

--]]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-11-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档