GNU bug report logs - #21394
25.0.50; Segfault when displaying unprintable character in echo area while frames are being created

Previous Next

Package: emacs;

Reported by: Pip Cet <pipcet <at> gmail.com>

Date: Tue, 1 Sep 2015 16:45:02 UTC

Severity: normal

Tags: patch

Found in version 25.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #20 received at 21394 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Pip Cet <pipcet <at> gmail.com>
Cc: 21394 <at> debbugs.gnu.org
Subject: Re: bug#21394: 25.0.50;
 Segfault when displaying unprintable character in echo area while
 frames are being created
Date: Tue, 01 Sep 2015 22:37:16 +0300
> Date: Tue, 1 Sep 2015 18:52:44 +0000
> From: Pip Cet <pipcet <at> gmail.com>
> Cc: 21394 <at> debbugs.gnu.org
> 
>     I see the problematic face always has face ID of 18, and the 'used'
>     field is always 15 when the segfault strikes. So I guess the next
>     step is to make the breakpoint in cache_face conditional on i being
>     18,
> 
> i is used in two different ways in that function, as a face hash and as an
> index into faces_by_id. I assume you mean the latter?

Yes.

>     and then see whether c->used is set to 19 during that call to
>     cache_face. If it does, then a watchpoint (by location) on c->used
>     should show which code makes the value smaller.
> 
> So I wrote a perl script to set a watchpoint on c->used whenever we allocate a
> new face cache c in make_face_cache, and clear the watchpoint when we hit
> free_face_cache. Output attached, but do let me know what else you would like
> watched. I think that has all the information your approach would have given
> us.

Sounds like the face ID of 18 is "remembered" somewhere, and not
"forgotten" when the face cache is free'd?




This bug report was last modified 9 years and 320 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.