我正在尝试从一些未存储在文件系统中的文本中加载一大块Lua。我在package.loaders
添加了一个元素来从C执行此操作。只要我在C中调用lua_load
来加载/执行块,应用程序就会中止,崩溃,不会引发任何异常。该应用程序已经消失。
这是一个非常大的问题。现在我正在尝试调试这个问题,但如果在生产中发生这种情况会发生什么呢?我肯定错过了什么。如果没有LuaJIT中止应用程序,我们如何编写质量,生产代码?我错过了什么。我错过了什么?
A related SO article建议使用常规Lua运行该应用。我做到了,它工作得很好。所以LuaJIT中的某些东西不喜欢我的代码。我找不到了。
我可能会问两个问题:
如何立即查找此特定代码的具体问题。在常规Lua中工作,在LuaJIT中失败。
我们如何使用LuaJIT,以便当它遇到不喜欢的东西时,它不会完全中止整个过程?
LuaJIT中的崩溃位于lua_call(L, 1, 1); /* run loaded module */
的lib_package.c中,大约为line 431
。