[Gc] Segfault in GC_mark_from

Klaus Treichel ktreichel at web.de
Sun Oct 26 09:20:36 PST 2008


Hi,

> Please recompile the gc lib manually - type the following:
> rm add_gc_prefix.c AmigaOS.c gcname.c if_mach.c if_not_there.c MacOS.c msvc_dbg.c setjmp_t.c threadlibs.c
> gcc -c -g -Wall -Wno-uninitialized -D_REENTRANT -D_GNU_SOURCE -DALL_INTERIOR_POINTERS -DNO_EXECUTE_PERMISSION -DGC_ASSERTIONS -DGC_THREADS -I include -I libatomic_ops-1.2/src *.c libatomic_ops-1.2/src/atomic_ops.c
> ar -crus libgc.so *.o
> 
> And don't turn on GC incremental mode (i.e. don't call GC_enable_incremental() or set GC_ENABLE_INCREMENTAL env var).
> If You'd manage to reproduce the bug again with this config - let me know.

I sent a mail with our the detailed build settings.
We don't use incremental collection.

This is a part og GC_dump() that i get on Cygwin with our test app.

***Free blocks:
Free list 1 (Total size 4096):
        0xc67000 size 4096 not black listed
Free list 6 (Total size 24576):
        0xc5f000 size 24576 not black listed
Free list 32 (Total size 155648):
A       0xcb0000 size 155648 start black listed
Free list 60 (Total size 29470720):
        0x10d6000 size 29470720 partially black listed
GC_large_free_bytes = 29741056 (INCONSISTENT!!)
Total of 29655040 bytes on free list

There is something special how we allocate large objects (arrays).
We have an object header that constists of two pointers of which one
needs to be scanned by libgc.
The rest of the array doesn't have to be scanned.
So we create a type descriptor for the object header and allocate the
space needed for the whole array explicitely_typed.

We didn't have any problem with this with libgc 6.8 but that seems to
cause the problems with 7.1/7.2a1 now.

Klaus

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Dies ist ein digital signierter Nachrichtenteil
Url : http://napali.hpl.hp.com/pipermail/gc/attachments/20081026/d5d073d1/attachment.pgp


More information about the Gc mailing list