this.convertToShieldStackAvengerRuntimeException(e) : e; } default Throwable convertToShieldStackAvengerRuntimeException(Throwable e) { // 如果不转换,就会把e的cause异常栈信息全部打印出来,增加打印性能消耗。这里转换缩减打印字符串成本,最后还是要抢printStream锁 // 因为日志框架要调用Throwable.printStackTrac...
print(debug.traceback("Stack trace")) print(debug.getinfo(1)) print("Stack trace end") return 10 end myfunction () print(debug.getinfo(1))执行以上代码输出结果为:Stack trace stack traceback: test2.lua:2: in function 'myfunction' test2.lua:8: in main chunk [C]: ? table: 0054C6...
第三步: 将data 转化为我们想要的 stack(初步看了代码,需要我们修改 trace 的代码) 1. 2. 3. 4. 5. 6.
我们首先来实现调用栈回溯打印接口printtraceback(),这个接口比较简单,只是简单地包装了一下debug.traceback(),对层级进行了一个修正,就不多介绍了。 -- 打印调用栈的一个回溯 localfunctionprinttraceback(level) -- 层次的默认值为1 -- 加上4是为了修正层次数以包含printtraceback, debug mainchunk, debug.deb...
lua: test2.lua:2: 'do' expected near 'print'语法错误比程序运行错误更简单,运行错误无法定位具体错误,而语法错误我们可以很快的解决,如以上实例我们只要在for语句下添加 do 即可:实例 for a= 1,10 do print(a) end运行错误运行错误是程序可以正常执行,但是会输出报错信息。如下实例由于参数输入错误,程序执行...
debug.traceback:根据调用桟来构建一个扩展的错误消息 >=xpcall(function(i) print(i) error('error..') end, function() print(debug.traceback()) end, 33) 33 stack traceback: stdin:1: in function <stdin:1> [C]: in function 'error' ...
我们首先来实现调用栈回溯打印接口printtraceback(),这个接口比较简单,只是简单地包装了一下debug.traceback(),对层级进行了一个修正,就不多介绍了。 -- 打印调用栈的一个回溯 local function printtraceback(level) -- 层次的默认值为1 -- 加上4是为了修正层次数以包含printtraceback, debug mainchunk, debug...
function func1() func2() end function func2() print(debug.traceback("Stack trace:")) end func1() Stack trace: [string "test.lua"]:5: in function 'func2' [string "test.lua"]:2: in function 'func1' [string "test.lua"]:9: in main chunk [C]: in ?分类...
数字可选项 level 指明从栈的哪一层开始回溯 (默认为 1 ,即调用 traceback 的那里)。 上表列出了我们常用的调试函数,接下来我们可以看些简单的例子: 实例function myfunction () print(debug.traceback("Stack trace")) print(debug.getinfo(1)) print("Stack trace end") return 10 end myfunction () ...
print(debug.getinfo(1)) print("Stack trace end") return 10 end myfunction() print(debug.getinfo(1)) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 输出结果: 在以实例中,我们使用到了 debug 库的 traceback 和 getinfo 函数, getinfo 函数用于返回函数信息的表。