【发布时间】:2015-11-05 15:39:18
【问题描述】:
我有一个简单的程序,它在一个 lua 文件上运行 luaL_dofile(我们称它为“script.lua”,然后检查错误,然后再次运行该文件,依此类推。如果在任何时候程序发现一个错误,它将它写入日志然后终止。问题是,script.lua 获取用户的输入,然后使用loadstring 运行该字符串。我不想发生的事情(以及确实发生的事情)是为loadstring 创建错误(因为用户输入了错误的代码),然后 C++ 程序发现此错误并终止程序。在我看来,防止 C++ 程序发现错误的最佳方法是将其从堆栈,但我不知道如何从 script.lua 访问 lua 堆栈。
【问题讨论】:
-
C++ 程序如何使用'loadString' 或您的 lua 脚本调用的任何其他函数查看堆栈?在控制权返回 C++ 之前,应弹出这些堆栈条目。