GC Segfault
Vasily Chekalkin
bacek at bacek.com
Mon Jul 20 14:14:17 UTC 2009
François Perrad wrote:
> With WMLScript, I obtain many Garbage Collector Segfaults.
> There disappear with parrot -G
>
> Note: WMLScript PMCs extend core PMCs, without overload v-table mark
> or destroy.
> And there don't use mem_alloc_* calls.
Ok. It's not "GC" segfault... It's something even more complex.
Here is backtrace. Note "value=0xbffff31c". Segfault happened when GC
try to mark this value. My PCC and wmls knowledge aren't strong enough
to fix it before release...
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/bacek/src/parrot/parrot --gc-debug
languages/wmlscript/wmlsi.pir
/home/bacek/src/parrot/languages/wmlscript/t/float_15.wmlsc main
warning: Lowest section in /usr/lib/libicudata.so.38 is .hash at 000000b4
[Thread debugging using libthread_db enabled]
[New Thread 0xb6d0a6c0 (LWP 9062)]
[Switching to Thread 0xb6d0a6c0 (LWP 9062)]
Breakpoint 2, Parrot_CPointer_set_pointer (interp=0x804f040,
pmc=0x812fc98, value=0xbffff31c)
at ./src/pmc/cpointer.pmc:170
170 Parrot_CPointer_attributes * const data = PARROT_CPOINTER(SELF);
(gdb) bt
#0 Parrot_CPointer_set_pointer (interp=0x804f040, pmc=0x812fc98,
value=0xbffff31c) at ./src/pmc/cpointer.pmc:170
#1 0xb7d56ea9 in Parrot_pcc_build_sig_object_from_varargs
(interp=0x804f040, obj=0x80b4960,
sig=0xb7fb477d "PPP->P", args=0xbffff30c
"����@�\004\b(�\022\b\002") at src/call/pcc.c:413
#2 0xb7d665a7 in Parrot_mmd_multi_dispatch_from_c_args
(interp=0x804f040, name=0xb7fb4791 "multiply",
sig=0xb7fb477d "PPP->P") at src/multidispatch.c:302
#3 0xb7f56710 in Parrot_scalar_multiply (interp=0x804f040,
pmc=0x812fd10, value=0x812fcf8, dest=0x80b4960)
at ./src/pmc/scalar.c:1262
#4 0xb7cd91e1 in Parrot_mul_p_p_p (cur_opcode=0x805a660,
interp=0x804f040) at src/ops/math.ops:741
#5 0xb7d81430 in runops_slow_core (interp=0x804f040, pc=0x805a660) at
src/runcore/cores.c:462
#6 0xb7d8002e in runops_int (interp=0x804f040, offset=3) at
src/runcore/main.c:987
#7 0xb7d59725 in runops (interp=0x804f040, offs=3) at src/call/ops.c:119
#8 0xb7d59b34 in runops_args (interp=0x804f040, sub=0x80c5218,
obj=0x80b4960, meth_unused=0x0, sig=0xb7fa219b "vP",
ap=0xbffff4ac "") at src/call/ops.c:269
#9 0xb7d5a9e6 in Parrot_runops_fromc_args (interp=0x804f040,
sub=0x80c5218, sig=0xb7fa219b "vP")
at src/call/ops.c:338
#10 0xb7d37b57 in Parrot_runcode (interp=0x804f040, argc=3,
argv=0xbffff62c) at src/embed.c:1021
#11 0xb7f7745f in imcc_run_pbc (interp=0x804f040, obj_file=0,
output_file=0x0, argc=3, argv=0xbffff62c)
at compilers/imcc/main.c:801
#12 0xb7f7805c in imcc_run (interp=0x804f040, sourcefile=0xbffff796
"languages/wmlscript/wmlsi.pir", argc=3,
argv=0xbffff62c) at compilers/imcc/main.c:1092
#13 0x08048958 in main (argc=3, argv=0xbffff62c) at src/main.c:60
(gdb)
--
Bacek
More information about the parrot-dev
mailing list