[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: crash in GC
From: |
Richard Stallman |
Subject: |
Re: crash in GC |
Date: |
Thu, 19 Dec 2002 13:33:57 -0500 |
The first step of debugging this is to track the path
that mem_find would have taken thru the mem_root data structure
and see if you can find anything invalid in that data structure.
I suspect you will find that a `right' or `left' pointer is NULL.
That shouldn't ever happen; in a leaf, these pointers should be
MEM_NIL which is not NULL. At least, that's what I concluded
from reading the code.
I will install this change to document the data structure more
clearly.
*** alloc.c.~1.282.~ Thu Nov 14 21:41:01 2002
--- alloc.c Thu Dec 19 11:48:25 2002
***************
*** 341,347 ****
struct mem_node
{
! struct mem_node *left, *right, *parent;
/* Start and end of allocated region. */
void *start, *end;
--- 341,352 ----
struct mem_node
{
! /* Children of this node. These pointers are never NULL. When there
! is no child, the value is MEM_NIL, which points to a dummy node. */
! struct mem_node *left, *right;
!
! /* The parent of this node. In the root node, this is NULL. */
! struct mem_node *parent;
/* Start and end of allocated region. */
void *start, *end;
- crash in GC, Sam Steingold, 2002/12/15
- Re: crash in GC,
Richard Stallman <=