Lua没有明显的原因崩溃

时间:2012-08-29 21:49:28

标签: lua

我们已将Lua集成到一个项目中,但我们发现了一个奇怪的测试案例,它在ARM上一直崩溃:

data = {"A","B","C","D","E","F","G","H","I","J"};

function OnTick(_object)

    local params = {};

    return 1;
end

以下是从C ++调用函数的基础知识:

lua_getglobal(Lua, function_name->c_str()); // Push function name that we want to call onto the stack
if (lua_isnil(Lua, -1))
{
    // Error
    lua_pop(Lua, 1);
    return -1;
}
lua_pushlightuserdata(Lua, (void*)object);  // Push the reference object onto the stack

if (lua_pcall(Lua, 1, 1, 0) != 0)
{
    // Error
    lua_pop(Lua, 1);
    return -1;
}

lua_pop(Lua, 1);
return 1;

OnTick在被召唤5次后崩溃。

当垃圾收集器试图清理时,Lua似乎崩溃了。其他人遇到这样的事情并解决了吗?

1 个答案:

答案 0 :(得分:0)

解决了这个问题,客户端代码破坏了Lua状态