首页 > 其他分享 >lua打印调用的函数文件及行数

lua打印调用的函数文件及行数

时间:2024-05-24 15:19:35浏览次数:14  
标签:调用 end 及行数 tracebackarr lua split local string

lua根据调用堆栈可以打印调谁调用了我

 

string.split = function(s, delim)
    local split = {}
    local pattern = "[^" .. delim .. "]+"
    string.gsub(s, pattern, function(v) table.insert(split, v) end)
    return split
end

function getWhoCallsMe()
    local tracebackarr = string.split(debug.traceback(), "\n")
    if #tracebackarr >= 4 then
        -- 正常最少都有4行的
        local tracebackmsg = string.split(tracebackarr[4], " ")[1] --     ./\tE:\\luaXXX/luatest.lua:26: in main chunk
        local msgarr = string.split(tracebackmsg, "/")
        local luaFileInfo = msgarr[#msgarr] -- luatest.lua:26:      
        return luaFileInfo
    end
    return tracebackarr[#tracebackarr]
end

function test()
    local info = getWhoCallsMe()
    print(info)
end

test()
-- 输出 luatest.lua:26:

 

标签:调用,end,及行数,tracebackarr,lua,split,local,string
From: https://www.cnblogs.com/barrysgy/p/18211018

相关文章

  • 腾讯ocr 调用方法
    推荐这个高精度口:importjsonimporttypesfromtencentcloud.commonimportcredentialfromtencentcloud.common.profile.client_profileimportClientProfilefromtencentcloud.common.profile.http_profileimportHttpProfilefromtencentcloud.common.exception.ten......
  • lua 写一个类
    lua的创建类,自定义class--lua面向对象扩展local_class={}functionclass(super)localclass_type={}class_type.ctor=falseclass_type.super=superclass_type.new=function(...)localobj={}dolocalcre......
  • Lua中调用ref和out修饰参数的函数/重载函数
    [12]lua中调用ref和out修饰参数的函数数值publicintRefCompute(inta,refintb,refintc,intd){b+=a;c+=d;returnb+c;}publicintOutCompute(inta,outintb,outintc,intd){b=a+1;c=d+2;returnb+c;}......
  • Go: 深入理解程序调用栈与栈帧
    在编写和调试程序的过程中,了解程序的执行原理对开发者至关重要。程序调用栈(CallStack)和栈帧(StackFrame)是程序运行时的核心概念,帮助我们理解函数调用、递归、错误处理等机制。本文将详细介绍程序调用栈及其栈帧的工作原理,帮助读者更好地掌握这些基本但重要的概念。什么是......
  • netcore webapi部署到docker容器,api调用后显示中文乱码
    vs2022webapi部署到docker容器,api调用后显示中文乱码。原因是:源代码文件不是utf-8编码(用vscode打开是乱码,在vscode修改后,再提交,正常)解决方法:在中文环境下用过微软家Visualstudio的都知道,新建文件的保存编码都默认为当前系统语言,所以你的文件编码永远都是GB2312,非常令人蛋......
  • DdddOcr 带带弟弟OCR通用验证码和 JAVA调用
    本文主要参考DdddOcr发布的最新版本启动服务端,以及JAVA如何和服务端对接。DdddOcr,其由作者与kerlomz共同合作完成,通过大批量生成随机数据后进行深度网络训练,本身并非针对任何一家验证码厂商而制作,本库使用效果完全靠玄学,可能可以识别,可能不能识别。DdddOcr、最简依赖......
  • 【WPF】WPF中调用winform的控件,winform始终置顶处理
    在WPF中调用windowFormsHost的控件时,由于渲染机制的问题总会出现各种问题,比如Winform的控件始终会出现在最顶层。在WPF项目中添加Microsoft.DwayneNeed.dll可以避免置顶问题<xmlns:interop=clr-namespace:Microsoft.DwayneNeed.Interop;assembly=Microsoft.DwayneNeed></xmln......
  • lua的table, string, class常用扩展
    --lua扩展--table扩展--返回table大小table.size=function(t)localcount=0for_inpairs(t)docount=count+1endreturncountend--返回table的最大valuetable.maxn=function(t)localmaxn=nilfor_,vinpai......
  • java 通过 microsoft graph 调用outlook(三)
    这次会添加一个Reply接口,并且使用6.10.0版本 直接上代码一,POM<!--office365--><dependency><groupId>com.microsoft.graph</groupId><artifactId>microsoft-graph</artifactId><......
  • 关于如何使用JNI将C语言接口打包成可供java环境调用的so库文件
    一、环境检查在linux下打包.so文件,首先需要确认是否有安装java环境,可通过在终端中输入指令java的方式来进行查看。如下图所示,则为已安装java环境。  若当前未安装java环境,则可通过在终端中输入如下指令进行安装,我这里使用的java环境为1.8.0版本。sudoapt-getinstallo......