Comments (7)
把dofile "test"
改成 require "test"
不会crash
from slua.
还是使用 dofile "test"
, 把LuaState.cs中的
string resumefunc = @"
local resume = coroutine.resume
local unpack = unpack or table.unpack
coroutine.resume=function(co,...)
local ret={resume(co,...)}
if not ret[1] then UnityEngine.Debug.LogError(debug.traceback(co,ret[2])) end
return unpack(ret)
end
";
if not ret[1] then UnityEngine.Debug.LogError(debug.traceback(co,ret[2])) end
改成
if not ret[1] then print(debug.traceback(co,ret[2])) end
后不会crash
from slua.
环境说明:
- 操作系统:mac os x 10.10.3
- Unity: 4.6.4.f1
- Slua: 0.8.1
from slua.
进一步查证,与LuaTimer没关系。测试代码如下:
function main()
local co
co = coroutine.create(function()
dofile "test"
end)
coroutine.resume(co)
end
from slua.
我这里没有crash,但我大概知道如果真的crash的原因,也许需要在c代码层面实现dofile,类似require,只是不再检查_LOADED表。
from slua.
@pangweiwei 很奇怪的是,我把LuaState.cs中的
if not ret[1] then UnityEngine.Debug.LogError(debug.traceback(co,ret[2])) end
改成
if not ret[1] then pcall(function() UnityEngine.Debug.LogError(debug.traceback(co,ret[2])) end) end
后不会crash,并且debug.traceback的错误堆栈能正常通过UnityEngine.Debug.LogError打印出来
from slua.
crash是应为堆栈坏了,dofile放在c代码实现是安全的。
from slua.
Related Issues (20)
- 加群
- 加群专用 HOT 3
- 用slua记载一个蓝图类报错
- Insecure Temporary File
- 加群 HOT 1
- 如何编译64位Lua5.3版本的slua HOT 3
- 1.6 升1.7后 android取UnityEngine.Time.deltaTime 取不到 是nil指
- slua clang 编译后 crash HOT 3
- 加群
- 加群
- 加群 HOT 1
- SLua的GetAlreadyDestroyedObjectNames
- 加群
- 加群
- .Net 6(Unity2021) EnableKeyword 的重载方法中增加了 in 关键字
- Unity2021.2, Unity2022.2 Lua桥生成错误
- 加群
- DllNotFoundException: Unable to load DLL 'slua'. Tried the load the following dynamic libraries HOT 1
- 加群
- 加群
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slua.