Open Declanctz opened 4 years ago
我本地工程有行号有栈,你搞了啥呢?
之前都能正常显示的,也没做什么额外的操作,就是shell批处理了下脚本,做了些写入操作。然后脚本格式都是utf-8 的,写入的东西都去除了。还是报红看不到具体代码具体行,xlua的public object[] DoString(byte[] chunk, string chunkName = "chunk", LuaTable env = null)这类的源码API都没有改动过
哦哦,好像找到原因了,是声明了一些全局的非wrap过的变量CS.xxx.xxx,其中的xxx.xxx没有wrap,而是走的反射的机制,然后就影响普通脚本的逻辑报错时的debug具体定位信息的显示了。注释掉反射获取的CS.xxx.xxx就可以正常显示报红的某某代码某某行了,这很奇怪,是xlua对反射的支持会影响到报错debug具体定位吗。
反射也不会影响啊
类似如下的报错代码 local tt = nil assert(tt ~= nil, "xxxx")
报错抛异常不再显示具体某某脚本某某类了,转而只显示LuaException: error in error handling XLua.LuaEnv.ThrowExceptionFromError (Int32 oldTop) (at Assets/XLua/Src/LuaEnv.cs:445)了
这是为啥?