[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GC bug
From: |
Richard Stallman |
Subject: |
Re: GC bug |
Date: |
Thu, 12 Jun 2003 10:03:28 -0400 |
One thing to check is the value of stack_base. Is it correct?
#3 0x0811bc1d in mark_memory (start=0xbfff9db0, end=0xbffff9c4) at
alloc.c:3453
Are the values of start and end reasonable values?
#2 0x0811d245 in mark_object (argptr=0xbfff9d78) at alloc.c:4862
Which stack frame is address 0xbfff9d78 in?
Do `i frame' in each stack frame to see which one
contains that address.
Then find what data structure is that in.
In that frame, try doing `info local' and determine the address
and size of various locals. Likewise for the arguments.
With that info, we may see what's going on.
(gdb) p obj
$1 = 152079892
(gdb) xtype obj
Lisp_Int
0
That is not a reliable way to see what object was found.
We don't know if that register still contains the object.
Try x/x 0xbfff9d78; that way you will reliably see
what is at that location. I suspect from the code in mark_object
that it is a Lisp_Misc type. Which kind?
Try to deduce out what happened inside the code for mark_maybe_object.
If you can't deduce it, try recompiling without -O and after removing
the `INLINE' from the definition of mark_maybe_object. Then you will
be able to look at its stack frame and maybe figure out what happened
there.
- GC bug, Alex Schroeder, 2003/06/10
- Re: GC bug,
Richard Stallman <=
- Re: GC bug, Alex Schroeder, 2003/06/12
- Re: GC bug, Richard Stallman, 2003/06/14
- Re: GC bug, Alex Schroeder, 2003/06/18
- Re: GC bug, Alex Schroeder, 2003/06/19
- Re: GC bug, Alex Schroeder, 2003/06/19
- Re: GC bug, Richard Stallman, 2003/06/21