[Gc] Issues with GC custom marking routines

Laurynas Biveinis laurynas.biveinis at gmail.com
Sun Oct 8 08:17:44 PDT 2006


Hi,

I'm trying to make use of custom marking routines for GCC internal GC.
After several collections a heap corruption becomes apparent. I've
rebuilt collector with -DGC_ASSERTIONS -DKEEP_BACK_PTRS -DDBG_HDRS_ALL
-DCHECKSUMS and when I'm trying to run GCC, I get this:

Without debugger:
Assertion failure: ../../gcc-boehm-custom-marking/boehm-gc/mark.c:654

Under debugger:
Assertion failure: ../../gcc-boehm-custom-marking/boehm-gc/reclaim.c:693

#3  0x00000000013cb01e in GC_reclaim_generic (hbp=0x2aaaab26b000,
hhdr=0x2aaaab15d810, sz=12, init=0, list=0x0)
    at ../../gcc-boehm-custom-marking/boehm-gc/reclaim.c:693
693	      GC_ASSERT((hhdr)->hb_descr == 0 /* Pointer-free block */);
(gdb) print *hhdr
$5 = {hb_sz = 12, hb_next = 0x2aaaab292000, hb_prev = 0x0, hb_descr =
34, hb_map = 0x2aaaaaad0d88 "", hb_obj_kind = 4 '\004',
  hb_flags = 0 '\0', hb_last_reclaimed = 2, hb_marks =
{1153203048319811584, 72075190519988480, 4504699407499280,
1153203048319815681,
    72075190519988480, 4504699407499280, 1153203048319815681, 17596482060544}}

I realize that I'm providing too little information (for instance,
none of my client side code, as autogenerated marker routines are
numerous), but I'm lost how to continue debugging from here. I'm using
version 6.8 on x86_64-unknown-linux-gnu. Any hint on what when wrong
here and how to get on track with debugging it would be appreciated.

--
TIA,
Laurynas


More information about the Gc mailing list