segfault

Henry Cejtin henry@sourcelight.com
Thu, 22 Nov 2001 00:31:48 -0600


With  GC_EVERY_CHECK  turned  on  (and -native false), I looked a bit more at
what is going on in the segfault.  The death happens in the call to invariant
in  GC_enter.   At  that  point the heap has clearly been trashed because the
invariant code things that it has found a second stack, even though there  is
only  one  and  that  was  already  scaned.   The item immediately before the
`stack' in the heap looked like a properly  formed  `normal'  object  with  2
pointer  fields and 0 non-pointer fields, but the second pointer field was 1.

Any ideas?  Any clues?

Again, the death is at:
    gc.c 421: assert(stack->used <= stack->reserved) failed.