如何在lua中从死协程中获取traceback和错误消息

如何在lua中从死协程中获取traceback和错误消息

像正常的traceback和从死协程中的错误一样

点赞
用户13447666
用户13447666

使用 debug.traceback 和一些 coroutine.resume 的输出

function coroutine.xpcall(co)
  local output = {coroutine.resume(co)}
  if output[1] == false then
    return false, output[2], debug.traceback(co)
  end
  return table.unpack(output)
end

function func()
  error("Crash")
end

local co = coroutine.create(func)

print(coroutine.xpcall(co)) --应该打印错误消息和跟踪信息
2020-11-26 07:36:49