emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: abort in garbage collection (when loading an image)


From: Richard Stallman
Subject: Re: abort in garbage collection (when loading an image)
Date: Mon, 07 Apr 2003 22:31:58 -0400

    (gdb) p last_marked[last_marked_index-1]
    $6 = (int *) 0x921ef84

    This address is the same as the argptr to mark_object() from the
    backtrace.

    (gdb) p argptr
    $7 = (int *) 0x921ef84

Look at the definition of union Lisp_Object in lisp.h.  the value of
*argptr is 0xa91eaa68.  The type field there is 2.  This is therefore
a Misc.

The correct way to use xtype, xmiscfree, and all the others
is to print THE OBJECT VALUE and then use the x command:

    p *argptr
    xtype
    xmiscfree

The commands all apply to $.  This is stated in etc/DEBUG.

The fact that the misc object was of type Lisp_Misc_Free
is probably the immediate cause of the bug.  Look at the code
executing in this frame, and you'll see.

  #2  0x08119fd5 in mark_object (argptr=0x921ef84) at alloc.c:4846

So the question is, how did such an object become part of live Lisp
data?  You need to trace back the chain of pointers that led to this
object.  That's where last_marked is useful.

    #4  0x08118dae in mark_memory (start=0xbffea38c, end=0xbffff9e4) at 
alloc.c:3557

marks parts of the stack.  Can you find which stack frame it is marking?
What is that value really supposed to mean?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]