lua脚本用luajit编译成字节码后在unity里运行报错日志不显示行号的解决方案

时间:2024-04-08 14:15:19

这个问题,我很早就遇到了,但是一直没有重视。当别人提及这个事情时,才发现luajit编译后的字节码在unity报错不显示行号。如下图
lua脚本用luajit编译成字节码后在unity里运行报错日志不显示行号的解决方案
显示一个0,是什么鬼。。。。静静回想一下既然是字节码不显示行号可以理解的。你加密了干嘛还显示行号。但是一个项目中不需要啊,因为有时候报错了,有一些BUG可遇不可求。只有用lua脚本单独再跑一次,用重复的方法重现。然后用lua显示行号,找到问题。如下图:
lua脚本用luajit编译成字节码后在unity里运行报错日志不显示行号的解决方案
但是,这个并不是本文所讲的解决方案。后来想一下应该是在jit生成的时候参数错了,于是找了相关代码,发现是生成错了。
我们代码是 luajit -b *window.lua,这样生成结果就是上面的截图。于是我改成了luajit -bg *window.lua后,生成的字节码就会有对应的日志。如下图:
lua脚本用luajit编译成字节码后在unity里运行报错日志不显示行号的解决方案
虽然很简单,但是我查了很久日志,查了很多相关资料,原生态的luajit -h没有对应的说明,如下图:
lua脚本用luajit编译成字节码后在unity里运行报错日志不显示行号的解决方案
所以我们的最终解决方案是吧打包流程改成了 luajit -bg window.lua