gpt4 book ai didi

debugging - Lua 堆栈回溯中缺少函数名称

转载 作者:行者123 更新时间:2023-12-01 21:28:11 27 4
gpt4 key购买 nike

我正在尝试改进运行 Lua 脚本的程序中的错误处理。简化版:

function _errH(msg)

print(msg .. "\n" .. debug.traceback(nil, 1))

end

function _main()

-- cause some random error
print(a-2)

end

function main()

xpcall(_main, errH)
end

main()

给我以下调用堆栈(请忽略错误的行号):

stack traceback:
[string ""]:7428: in function '__sub'
[string ""]:7651: in function <[string ""]:7432>
[C]: in function 'xpcall'
[string ""]:7658: in function 'main'
[string ""]:7928: in main chunk

现在我想知道为什么到处都有[string ""]

有什么方法可以影响这些缺失的文本吗?除了定义函数之外,我还必须命名它们吗?例如,为什么我看到 in function '__sub' 而不是 in function '_main'

最佳答案

[string ""] 来自将 block 加载到 vm 的方式。您没有提供文件名作为 lua_dofile/lua_loadfile/lua_dostring/lua_loadstring 的参数,或者只是在那里给出了空字符串。
注意,string是lua文件(lua block )的名称,而不是函数的名称。

关于debugging - Lua 堆栈回溯中缺少函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39128249/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com