[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: 5.1w1 aborts
- From: "Adam D. Moss" <adam@...>
- Date: Fri, 10 Sep 2004 23:26:05 +0100
Roberto Ierusalimschy wrote:
#2 0x4017cbf8 in abort () from /lib/libc.so.6
#3 0x080e0378 in lua_getmetatable (L=0x81cbb48, objindex=1) at lapi.c:558
#4 0x080f5bd9 in luaB_getmetatable (L=0x81cbb48) at lbaselib.c:94
[...]
Can you repeat that abort? If so, please send the following information:
- print *mt (as you did before)
- print *L->l_G (the global state)
- print obj->value.gc.h (table being accessed)
No problem...
mungo: lapi.c:558: lua_getmetatable: Assertion `!(((i_o)->tt) >= 4) || ((((i_o)->tt) == (i_o)->value.gc->gch.tt) && !(((i_o)->value.gc)->gch.marked & ((L->l_G)->currentwhite ^ ((1<<(0)) | (1<<(1))))))' failed.
[...]
#4 0x080d83f4 in lua_getmetatable (L=0x81c7a08, objindex=1) at lapi.c:558
#5 0x080eebf1 in luaB_getmetatable (L=0x81c7a08) at lbaselib.c:94
#6 0x080db876 in luaD_precall (L=0x81c7a08, func=0x81eb0c8, nresults=1) at ldo.c:282
#7 0x080e8bf3 in luaV_execute (L=0x81c7a08, nexeccalls=4) at lvm.c:592
[...]
(gdb) frame 4
#4 0x080d83f4 in lua_getmetatable (L=0x81c7a08, objindex=1) at lapi.c:558
558 sethvalue(L, L->top, mt);
(gdb) print *mt
$1 = {next = 0x82aeba8, tt = 5 '\005', marked = 2 '\002', flags = 2 '\002', lsizenode = 1 '\001', metatable = 0x0,
array = 0x0, node = 0x82b0160, firstfree = 0x82b0160, gclist = 0x81c7898, sizearray = 0}
(gdb) print *L->l_G
$2 = {strt = {hash = 0x82a1ec8, nuse = 1383, size = 2048}, realloc = 0x80ee866 <l_alloc>, ud = 0x0,
currentwhite = 1 '\001', gcstate = 2 '\002', gcgenerational = 0 '\0', rootgc = 0x82b1200, firstudata = 0x81c83e0,
sweepgc = 0x81c7a7c, sweepstrgc = 1794, gray = 0x0, grayagain = 0x81c7a08, weak = 0x81dbe78, tmudata = 0x0,
buff = {
buffer = 0x8288740 "Loading module vector3...y...texture GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_imaging GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_p"...,
n = 0, buffsize = 584}, GCthreshold = 305429, totalbytes = 304429, estimate = 304429, prevestimate = 60490,
panic = 0x80ee8a2 <panic>, _registry = {tt = 5, value = {gc = 0x81c8000, p = 0x81c8000,
n = 6.723517242339154e-316, b = 136085504}}, mainthread = 0x81c7a08, dummynode = {{i_key = {tt = 0, value = {
gc = 0x81e4e10, p = 0x81e4e10, n = 8.5552767783215961e-314, b = 136203792}}, i_val = {tt = 0, value = {
gc = 0x0, p = 0x0, n = 0, b = 0}}, next = 0x0}}, tmname = {0x81c82b0, 0x81c82d0, 0x81c82f0, 0x81c8310,
0x81c8330, 0x81c8350, 0x81c8508, 0x81c8528, 0x81c8548, 0x81c8568, 0x81c8588, 0x81c85a8, 0x81c85c8, 0x81c85e8,
0x81c8608}}
(gdb) print obj->value.gc.h
$3 = {next = 0x81c83e0, tt = 5 '\005', marked = 0 '\0', flags = 0 '\0', lsizenode = 8 '\b', metatable = 0x82a6a60,
array = 0x0, node = 0x8297ce8, firstfree = 0x82992e4, gclist = 0x81d0db8, sizearray = 0}
This is completely reproducable, so if you would like more info then
please ask.
Thanks,
--Adam