在执行使用我们使用 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 应该正确处理这个问题吗?