Subject: bug#5973: Crash in get_next_display_element

From: Eli Zaretskii <[email-masked]>
Date: Mon, 19 Apr 2010 21:26:55 +0300

> From: David Reitter <[email-masked]>
> Date: Mon, 19 Apr 2010 13:40:18 -0400
> Cc: [email-masked]
> 
> On Apr 19, 2010, at 1:23 PM, Eli Zaretskii wrote:
> > 
> > Let's start by finding the immediate reason for the crash.  Please
> > show the contents of `face', the last argument to FACE_FOR_CHAR in the
> > line that crashed.
> 
> How do I do that?
> It didn't run in gdb, and I don't know how to reproduce the crash.

Do you have a core file?  If so, then you can run GDB on it.

If not, then I'm afraid we will need to wait for another instance of
this crash.

> > Also, what kind of signal was it that crashed the program?  (The
> > backtrace is in some form that I'm not familiar with, so maybe the
> > information is already present there.)
> 
> Yes:
> 
> Exception Type:  EXC_BAD_ACCESS (SIGABRT)
> Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000110

This sounds like SIGSEGV, so I wonder why it says SIGABRT.

> > Thanks, but I don't think we should fix problems until we understand
> > them.  In general, it->face_id should index a face that is already
> > realized at this point.
> 
> Is it possible that this code runs, somehow, after a face got deleted?  That, per se, might be the real cause of the bug - but I can only speculate.

I don't know.  But this code exists there since Emacs 21.x, with only
minor changes.