Branch: Tag:

2000-04-19

2000-04-19 14:02:16 by Martin Stjernholm <mast@lysator.liu.se>

A little more debug.

Rev: src/gc.c:1.70

29:      #include "block_alloc.h"    - RCSID("$Id: gc.c,v 1.69 2000/04/17 21:06:24 hubbe Exp $"); + RCSID("$Id: gc.c,v 1.70 2000/04/19 14:02:16 mast Exp $");      /* Run garbage collect approximate every time we have    * 20 percent of all arrays, objects and programs is
598: Inside #if defined(PIKE_DEBUG)
   }       if(m->saved_refs != -1) -  if(m->saved_refs != *(INT32 *)a) -  fatal("Refs changed in gc()\n"); +  if(m->saved_refs != *(INT32 *)a) { +  fprintf(stderr,"**Refs changed in gc() pass %d. Expected %ld, got %ld.\n", +  Pike_in_gc, (long)m->saved_refs, (long)*(INT32 *)a); +  describe(a); +  locate_references(a); +  fprintf(stderr,"##### Continuing search for more bugs....\n"); +  fatal_after_gc="Refs changed in gc()\n"; +  }    m->saved_refs = *(INT32 *)a;   #endif   
656: Inside #if defined(PIKE_DEBUG)
  #ifdef PIKE_DEBUG   void locate_references(void *a)   { +  void *orig_check_for=check_for;    if(!Pike_in_gc)    init_gc();   
691: Inside #if defined(PIKE_DEBUG)
   call_callback(& gc_callbacks, (void *)0);       found_where=""; -  check_for=0; +  check_for=orig_check_for;      #ifdef DEBUG_MALLOC    {
731: Inside #if defined(PIKE_DEBUG)
   (long)xrefs);       if(m->saved_refs != *(INT32 *)a) -  fprintf(stderr,"**In pass one it had %ld refs!!!\n",m->saved_refs); +  fprintf(stderr,"**In pass one it had %ld refs!!!\n",(long)m->saved_refs);       describe_something(a, t, 0,2,0);   
751: Inside #if defined(PIKE_DEBUG)
  int gc_external_mark3(void *a, void *in, char *where)   {    struct marker *m; +  +  if (Pike_in_gc <= 0 || Pike_in_gc >= 4) +  fatal("gc_external_mark3 called outside valid gc pass.\n"); +     if(check_for)    {    if(a==check_for)