在Lua中处理StackOverflowException

本文关键字:StackOverflowException 处理 Lua | 更新日期: 2023-09-27 18:10:58

我正在用c#制作一个IRC聊天机器人,并希望通过命令可以执行Lua。我已经有了这个工作,并克服了一些基本的障碍,但现在我有一个更大的问题与StackOverflowException;我的朋友给了我一些Lua代码来运行,每次似乎都会导致StackOverflowException,无论我多么努力地去阻止它。

print(string.find(string.rep("a", 2^20), string.rep(".?", 2^20)))

所以,使用LuaInterface(准确地说,LuaInterface 2.0.0.16708)执行这个-我在我的代码中得到StackOverflowException,我似乎无法解决这个问题,看看以前的一些问题。

我知道在执行代码之前解析代码来预测堆栈溢出是很难的,所以我不知道如何规避这个问题。我已经尝试过多线程(它解决了以前的问题,产生的代码不会返回控制回到c#),但这似乎没有帮助。

在Lua中处理StackOverflowException

要解决这个问题,请使用Lua 5.2.2或更新版本。这种情况是一个报告的错误,已在5.2.2版本中修复。它会给出"pattern too complex"的错误。

至于沙箱,为什么不按照这个SO答案中建议的那样,在Lua现场演示之后设计它呢?我不知道它有多安全,但我认为作者有动机也有能力使它尽可能的安全。

相关文章:
  • 没有找到相关文章