LUA debug 工具函数

简介: 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.
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()

--]]

 

目录
相关文章
|
存储 C语言 图形学
C 函数中如何保存 Lua 的数据(1)
C 函数中如何保存 Lua 的数据(1)
159 0
|
存储 Java C语言
lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】
lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】
237 0
|
12月前
lua面向对象(类)和lua协同线程与协同函数、Lua文件I/O
Lua的面向对象编程、协同线程与协同函数的概念和使用,以及Lua文件I/O操作的基本方法。
142 4
lua面向对象(类)和lua协同线程与协同函数、Lua文件I/O
|
数据可视化 开发者 索引
详解Wireshark LUA插件函数:function p_myproto.dissector(buffer, pinfo, tree)
在 Wireshark 中,LUA 插件通过 `function p_myproto.dissector(buffer, pinfo, tree)` 扩展协议解析能力,解析自定义应用层协议。参数 `buffer` 是 `PacketBuffer` 类型,表示原始数据包内容;`pinfo` 是 `ProtoInfo` 类型,包含数据包元信息(如 IP 地址、协议类型等);`tree` 是
496 1
|
C语言 C++ 索引
C 函数中如何保存 Lua 的数据(2)
C 函数中如何保存 Lua 的数据(2)
171 1
|
网络协议 Java PHP
我的小工具-远程读卡器web客户端(PHP+LUA)
我的小工具-远程读卡器web客户端(PHP+LUA)
[✔️]lua中的module函数
[✔️]lua中的module函数
404 0
|
XML Java 数据格式
【Lua基础 第4章】Lua的流程控制、#的作用、table的创建方式、table表常用方法、函数、多返回值、可变长参数
Lua的流程控制、#的作用、table的创建方式、table表常用方法、函数、多返回值、可变长参数
242 0
【Lua基础 第4章】Lua的流程控制、#的作用、table的创建方式、table表常用方法、函数、多返回值、可变长参数
|
数据采集 大数据 开发者
Lua 语法函数|学习笔记
快速学习 Lua 语法函数
Lua 语法函数|学习笔记