Subject: Re: bug#20802: Segfault when showing non-GTK+ tooltip

From: Eli Zaretskii <[email-masked]>
Date: Sat, 13 Jun 2015 17:42:36 +0300

> Date: Sat, 13 Jun 2015 16:28:47 +0200
> From: martin rudalics <[email-masked]>
> CC: [email-masked], [email-masked]
> 
> As I mentioned earlier this seems to be due to the fact that the
> debugger intervenes in some recursive fashion.  The crash happens after
> the backtrace window popped up and when I try to ‘switch-to-prev-buffer’
> in the window where the tooltip should have appeared.  Without that I'm
> _not_ able to reproduce the crash.
> 
>  > Can you see what is that frame, and why we didn't call
>  > init_frame_faces for it?
> 
> What makes you think this is not my normal frame in the first place and
> why init_frame_faces was not called for it?  Hmmm, I see, nothing can
> stop make_image_cache apparently.

Exactly.  It is created in init_frame_faces, and never removed as long
as the frame is alive.

> I'll look into this later

Thanks.

>  > Also, which image are we trying to display
>  > here?
> 
> How would I know?

I thought you could look that up in the debugger.  For example, the
value of 'spec' in frame #1 (see below) could tell.

>  > Something on the toolbar, perhaps?  Did you move mouse pointer
>  > over a tool-bar button to trigger a tooltip that failed?
> 
> The toolbar is disabled with my customizations.

Hmm... then what other images do we display?  Note that according to
the backtrace, we've found a 'display' property in  buffer, which
caused the call to lookup_image:

  #0  0x00000000006c9b5c in cache_image (f=0x13a7e00, img=0x198ee20) at ../../src/image.c:1775
  #1  0x00000000006c96e3 in lookup_image (f=0x13a7e00, spec=...) at ../../src/image.c:1686
  #2  0x000000000044bebc in handle_single_display_spec (it=0x7fffffff8ba0, spec=..., object=..., overlay=..., position=0x7fffffff8cd8, bufpos=203, display_replaced=0, frame_window_p=true) at ../../src/xdisp.c:5137
  [...]
  #6  0x0000000000454ee3 in next_element_from_buffer (it=0x7fffffff8ba0) at ../../src/xdisp.c:8133

Thanks.