最近在写一个程序
主题是C++,嵌入Lua(v5.4.2)脚本
在调用Lua发生一些莫名其妙的Crash.
搞的我对Lua一点信心都没有了
CASE:
将数据压栈传递给Lua
查看crash dump文件
从 lua_settable(L, -3)开始进入,直到crash
此API调用需要注意是什么,可能是什么引起的?
而且是不是固定出现,相同数据压入过多次,都没问题
代码如下:
lua_getglobal(L, "GTAB");
lua_pushstring(L, "key");
lua_newtable(L);
// 还加入了一些其他的数据
// 此处保证栈平衡
lua_settable(L, 3); // dump 指示此处开始报错
dump trace 依次如下
lua_settable lapi.c
luaV_finishset lvm.c
luaG_forerror ldebug.c
changedline ldebug.c
luaG_runerror ldebug.c
luaD_rawrunprotected ldo.c// crash最后的位置
不知道有无大神有类似经历。
求解