0

在执行使用我们使用 LuaBridge 映射的内部对象的脚本后,Lua 命令行可执行文件崩溃。

**Call Stack**

Compiler.exe!l_alloc(void * ud, void * ptr, unsigned int osize, unsigned int nsize) Line 1003   C
Compiler.exe!luaM_realloc_(lua_State * L, void * block, unsigned int osize, unsigned int nsize) Line 86 C
Compiler.exe!luaH_free(lua_State * L, Table * t) Line 418   C
Compiler.exe!freeobj(lua_State * L, GCObject * o) Line 707  C
Compiler.exe!sweeplist(lua_State * L, GCObject * * p, unsigned int count) Line 743  C
Compiler.exe!luaC_freeallobjects(lua_State * L) Line 973    C
Compiler.exe!close_state(lua_State * L) Line 245    C
Compiler.exe!lua_close(lua_State * L) Line 344  C
Compiler.exe!main(int argc, char * * argv) Line 606 C

Values
ud = 0x00000000
ptr = 0x0ffb8690
osize = 32
nsize = 0

代码

static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize)
{

(void)ud; (void)osize;  /* not used */

if (nsize == 0) 
>{
    free(ptr);

return NULL;

}

else
    return realloc(ptr, nsize);

}

错误

Exception thrown at 0x50B8461D (ucrtbased.dll) in Compiler.exe: 0xC0000005: Access violation reading location 0x0FFB868C.

如果有这个异常的处理程序,程序可以安全地继续。

有关如何处理此问题的任何提示。显然这可能是我们代码中的内存分配问题,但是 Lua 应该正确处理这个问题吗?

4

0 回答 0