emacs-devel
[Top][All Lists]
Advanced

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

Re: Killing a frame sometimes kills emacs


From: Eli Zaretskii
Subject: Re: Killing a frame sometimes kills emacs
Date: Thu, 01 Sep 2011 06:27:21 -0400

> From: Tassilo Horn <address@hidden>
> Cc: address@hidden
> Date: Thu, 01 Sep 2011 12:09:30 +0200
> 
> Eli Zaretskii <address@hidden> writes:
> 
> Hi Eli,
> 
> >> From: Tassilo Horn <address@hidden>
> >> Date: Wed, 31 Aug 2011 22:16:55 +0200
> >> 
> >> Do you have any suggestions on how to debug this issue?
> >
> > Run Emacs under a debugger, put a breakpoint on Fkill_emacs, and when
> > this happens again, tell use who called it by showing the backtrace.
> 
> It turned out to be a crash, not something calling Fkill_emacs.  Here's
> the backtrace:

What about the Lisp backtrace?  And since this is an optimized build,
the backtrace is almost useless anyway.  Can you try reproducing this
in an unoptimized build?

> #7  0x00000000004e157c in xg_display_close (dpy=0x6ca0020) at gtkutil.c:182
>         gdpy = 0xd682e0
> #8  0x00000000004afc49 in x_delete_terminal (terminal=<optimized out>)
>     at xterm.c:10607
>         dpyinfo = 0x698d3e0
> #9  0x00000000004a40f2 in Fdelete_terminal (terminal=107998581, 
>     force=<optimized out>) at terminal.c:345
>         t = 0x66fed70
> #10 0x00000000004235cc in delete_frame (frame=99991829, force=<optimized out>)
>     at frame.c:1379
>         tmp = <optimized out>
>         terminal = <optimized out>
>         f = 0x5f5c110
>         sf = 0x121b7e0
>         kb = 0x0
>         minibuffer_selected = 0
>         tooltip_frame = 0
> #11 0x000000000042382a in Fdelete_frame (frame=<optimized out>, 
>     force=<optimized out>) at frame.c:1516

This part does look as if Emacs was going to close the X display where
the frame was displayed.  Were all other frames in that session on
other displays?  If not, how come Emacs is about to delete the
terminal?  Here's the relevant code:

    if (terminal->reference_count == 0)
      {
        Lisp_Object tmp;
        XSETTERMINAL (tmp, terminal);

        kb = NULL;
        Fdelete_terminal (tmp, NILP (force) ? Qt : force);
      }

Can you look at the value of terminal->reference_count?



reply via email to

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