emacs-devel
[Top][All Lists]
Advanced

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

Re: Fix for Mac OS X Garbage Collection Crashes


From: Stefan Monnier
Subject: Re: Fix for Mac OS X Garbage Collection Crashes
Date: 15 Oct 2003 13:05:28 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

> Yes, it was very hard to repeat the error.  The following shows the top
> of the call stack in one of my crash logs.

> Thread 0 Crashed:
>  #0   0x000c6aec in mark_object (alloc.c:5014)
>  #1   0x000c5e20 in Fgarbage_collect (alloc.c:4400)
>  #2   0x000dc710 in Feval (eval.c:1978)
>  #3   0x000d99a0 in Fprogn (eval.c:409)
>  #4   0x000de81c in unbind_to (eval.c:3083)
>  #5   0x0010de14 in Fbyte_code (bytecode.c:893)
>  #6   0x000de1f4 in funcall_lambda (eval.c:2916)
>  #7   0x000ddcb8 in Ffuncall (eval.c:2781)
>  #8   0x0010d70c in Fbyte_code (bytecode.c:691)
>  #9   0x000de1f4 in funcall_lambda (eval.c:2916)
>  ...

> So the call to mark_object that causes the problem was made from line
> 4400, in the code here:

> #if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \
>      || GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS)
>   mark_stack ();
> #else
>   {
>     register struct gcpro *tail;
>     for (tail = gcprolist; tail; tail = tail->next)
>       for (i = 0; i < tail->nvars; i++)
>         mark_object (tail->var[i]);
>   }
> #endif

> That's what gave me the idea that perhaps I should change the definition
> of GC_MARK_STACK for the OS X build.  Then I ran Emacs under gdb and
> after a long time was able to get the crash again (running Gnus, Tramp,
> BlogMax, and possibly other stuffs).  I discovered that `obj' contains
> an integer value (0x1fff0000, -32768?, I think) but strangely the case
> for Lisp_Cons (line 5014) was reached.

I've seen very strange things happen as well in other circumstances.

> Unfortunately I don't have that
> process any more.  Perhaps one can try to repeat this on another
> platform too.  It seems that this may not be a Mac-specific problem.
> Hope this is enough information.  The change to alloc.c last month
> wasn't that big, was it?

Thanks.  I'll try running with GCPROs for a while.


        Stefan




reply via email to

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