注册 登录
编程论坛 Lua论坛

C++ 调用Lua API lua_settable crash

simple7 发布于 2021-03-18 01:30, 1764 次点击
最近在写一个程序
主题是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最后的位置

不知道有无大神有类似经历。

求解



0 回复
1